我有许多脚本使用共同的定义。我该如何将它们分割成多个文件?此外,在我的情况下,应用程序不能以任何方式安装;必须能够同时运行任意数量的版本,并且必须在没有超级用户权限的情况下工作。我想到的解决方案有:
- 复制代码到每个脚本中。这样做很混乱,可能是最糟糕的方案。
- 将所有脚本和公共代码放在单个目录中,并使用
from . import
来加载它们。这种方法的缺点是,我想把我的库放在其他目录而不是应用程序中。 - 将公共代码放在自己的目录中,编写一个
__init__.py
导入所有子模块,最后使用from . import
来加载它们。保持代码组织良好,但是维护__init__.py
和限定名称需要一些额外的工作。 - 将库目录添加到
sys.path
和import
中。我倾向于这种方法,但我不确定调整sys.path
是否是好的做法。 - 使用
execfile
加载。(在Python 3中使用exec
)。结合前两种方法的优点:每个模块只需要一行代码,并且我可以使用专用的文件。另一方面,这回避了Python模块概念并污染了全局命名空间。 - 编写并使用
distutils
安装模块。这将为所有Python脚本安装库,并需要超级用户权限,并影响其他应用程序,因此在我的情况下不适用。
哪种方法最好?