当前位置:  开发笔记 > 编程语言 > 正文

如何模块化Python应用程序

如何解决《如何模块化Python应用程序》经验,为你挑选了1个好方法。

我有很多使用通用定义的脚本.如何将它们分成多个文件?此外,在我的场景中无法以任何方式安装应用程序; 必须可以同时运行任意数量的版本,并且它必须在没有超级用户权限的情况下工作.我想出的解决方案是:

每个脚本中都有重复的代码.凌乱,可能是最糟糕的计划.

将所有脚本和公共代码放在一个目录中,并用于from . import加载它们.这种方法的缺点是我想将我的库放在除应用程序之外的其他目录中.

将公共代码放在自己的目录中,编写一个__init__.py导入所有子模块的文件,最后用于from . import加载它们.保持代码组织,但维护__init__.py和限定名称需要一些开销.

将库目录添加到 sys.pathimport.我倾向于这一点,但我不确定是否摆弄sys.path 好的代码.

使用加载 execfile (exec在Python 3中).结合前两种方法的优点:每个模块只需要一行,我可以使用专用.另一方面,这避开了python模块概念并且对全局命名空间进行了规范.

使用编写和安装模块 distutils.这将为所有python脚本安装库,并需要超级用户权限并影响其他应用程序,因此不适用于我的情况.

什么是最好的方法?



1> bobince..:

添加到sys.path(通常使用site.addsitedir)是很常见的,并不是特别不赞成.当然,你会希望你的共同工作共享的东西在方便的模块中.

如果您使用的是Python 2.6+,则可以使用用户级模块文件夹,而无需添加到sys.path或PYTHONPATH.在Unix-like上是〜/ .local/lib/python2.6/site-packages - 有关更多信息,请参阅PEP 370.

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有