多版本安装#
- 页面状态:
已过时
easy_install 允许将同一项目的不同版本同时安装到由多个程序共享的单个环境中,这些程序必须在运行时require
项目的相应版本(使用pkg_resources
)。
对于许多用例,虚拟环境可以满足此需求,而无需require
指令的复杂性。但是,在同一环境中并行安装的优势在于,它适用于由多个应用程序共享的环境,例如 Linux 发行版中的系统 Python。
pkg_resources
基于并行安装的主要限制是,只要您导入pkg_resources
,它就会锁定 sys.path 上已经可用的所有内容的默认版本。这可能会导致问题,因为setuptools
创建的命令行脚本使用pkg_resources
查找要执行的入口点。这意味着,例如,如果您应用程序需要标准sys.path
上可用的任何内容的非默认版本,则无法使用通过nose
调用的require
测试或通过gunicorn
调用的 WSGI 应用程序。
可以通过在首次导入pkg_resources
之前在__main__.__requires__
中设置所有依赖项来解决此问题,但该方法确实意味着无法使用受影响工具的标准命令行调用 - 有必要编写自定义包装器脚本或使用python3 -c '<command>'
直接调用应用程序的主入口点。
有关更多详细信息,请参阅pkg_resources 文档。