在Python应用程序中包含第三方依赖项的最佳方法

时间:2014-02-16 17:39:12

标签: python python-2.7 virtualenv

为应用分发依赖项的最佳方法是什么?

假设我想要发布一个依赖于SqlAlchemy的应用程序 - 是否有一种干净的方式将SqlAlchemy包含在我的存储库中而不强迫用户安装它?

2 个答案:

答案 0 :(得分:2)

社区标准是将pip包管理器与requirements file一起使用。

E.g。

SQLAlchemy>=0.9.8

它会强制安装SQLAlchemy,版本高于或等于0.9.8

如果要以独立方式分发代码,可以考虑为第三方软件包创建单独的目录并扩展PYTHONPATH环境变量。

export PYTHONPATH=$PYTHONPATH:/path/to/3rdpartypackages/

答案 1 :(得分:0)

虽然它会强制用户安装它,但我建议使用pip requirements文件。 (http://www.pip-installer.org/en/latest/user_guide.html#requirements-files

对于这个特定问题,文件可以像一行一样简单:

SQLAlchemy

作为一般做法,您应该在此文件中指定您所依赖的版本号。 如果您不希望用户因为担心污染主要安装而必须安装东西,我会考虑使用VirtualEnv(http://www.virtualenv.org/en/latest/) - 这是分发依赖关系的推荐方法Django至少投射。