我有很多使用通用定义的脚本.如何将它们分成多个文件?此外,在我的场景中无法以任何方式安装应用程序; 必须可以同时运行任意数量的版本,并且它必须在没有超级用户权限的情况下工作.我想出的解决方案是:
每个脚本中都有重复的代码.凌乱,可能是最糟糕的计划.
将所有脚本和公共代码放在一个目录中,并用于from . import
加载它们.这种方法的缺点是我想将我的库放在除应用程序之外的其他目录中.
将公共代码放在自己的目录中,编写一个__init__.py
导入所有子模块的文件,最后用于from . import
加载它们.保持代码组织,但维护__init__.py
和限定名称需要一些开销.
将库目录添加到
sys.path
和
import
.我倾向于这一点,但我不确定是否摆弄sys.path
好的代码.
使用加载
execfile
(exec
在Python 3中).结合前两种方法的优点:每个模块只需要一行,我可以使用专用.另一方面,这避开了python模块概念并且对全局命名空间进行了规范.
使用编写和安装模块
distutils
.这将为所有python脚本安装库,并需要超级用户权限并影响其他应用程序,因此不适用于我的情况.
什么是最好的方法?
添加到sys.path(通常使用site.addsitedir)是很常见的,并不是特别不赞成.当然,你会希望你的共同工作共享的东西在方便的模块中.
如果您使用的是Python 2.6+,则可以使用用户级模块文件夹,而无需添加到sys.path或PYTHONPATH.在Unix-like上是〜/ .local/lib/python2.6/site-packages - 有关更多信息,请参阅PEP 370.