4

我计划使用多个包(内部和外部)开发一个中等规模的 Web 应用程序(有很多后端工作),因为这是我第一次体验这种规模,我可以得到一些建议:

  1. 如何确保满足所有依赖项(没有缺少所需的包/模块,从正确的位置导入包等)
  2. 如何管理包/模块的版本。我希望能够在其他连接的包/模块中以最少的代码更改引入新版本的包/模块。

请让我知道是否有可以对此有所帮助的工具。如果在以这种规模管理代码时遇到任何其他挑战(我什至可能不知道),请提醒我并提供解决方法。

我目前所知道的(并认为它可能有助于代码管理):

  • __all__定义可导出的模块。
  • 使用前面的单下划线来防止模块被导入
  • __init__.py在包级别管理导入(所以当我这样做时import package_name可以__init__.py集中控制其他导入)
  • PEP 328 用于管理相关导入、importlib 和其他与导入相关的内容。
  • 我想一些 3rd 方包也定义__version__VERSION变量以在运行时检查版本,但我不确定我是否可以依赖它。

如果有书籍、博客等可以提供帮助,请告诉我。

编辑:我不确定这种类型的问题是否适合这里。如果没有,那么我道歉。

4

1 回答 1

0

如何确保满足所有依赖项(没有缺少所需的包/模块,从正确的位置导入包等)

使用virtualenv并将带有pip的包冻结需求文件中:

$ pip freeze > requirements.txt
$ cat requirements.txt
argparse==1.2.1
distribute==0.6.31
wsgiref==0.1.2

基本上,只要您有一些需要安装模块的代码,就可以使用 virtualenv、distribute 和 pip。

根据您指定的版本安装软件包requirements.txt

pip install -r requirements.txt
于 2013-04-21T03:40:19.540 回答