【发布时间】:2014-02-16 17:39:11
【问题描述】:
为应用分发依赖项的最佳方式是什么?
假设我想发布一个依赖于 SqlAlchemy 的应用程序 - 有没有一种干净的方法可以在我的存储库中包含 SqlAlchemy 而无需强制用户安装它?
【问题讨论】:
标签: python python-2.7 virtualenv
为应用分发依赖项的最佳方式是什么?
假设我想发布一个依赖于 SqlAlchemy 的应用程序 - 有没有一种干净的方法可以在我的存储库中包含 SqlAlchemy 而无需强制用户安装它?
【问题讨论】:
标签: python python-2.7 virtualenv
社区标准是使用pip 包管理器和requirements file。
例如
SQLAlchemy>=0.9.8
这将强制安装版本高于或等于0.9.8 的 SQLAlchemy。
如果您想以独立方式分发您的代码,您可以考虑为第 3 方包创建单独的目录并扩展 PYTHONPATH 环境变量。
export PYTHONPATH=$PYTHONPATH:/path/to/3rdpartypackages/
【讨论】:
虽然它会强制用户安装它,但我建议为此使用 pip 需求文件。 (http://www.pip-installer.org/en/latest/user_guide.html#requirements-files)
对于这个特定的问题,文件可以像一行一样简单:
SQLAlchemy
通常,您应该在此文件中指定您依赖的版本号。 如果您不希望用户安装东西,因为您担心污染他们的主要安装,我会考虑为此使用 VirtualEnv (http://www.virtualenv.org/en/latest/) - 这是为 Django 项目分发依赖项的推荐方法至少。
【讨论】: