Rol*_*ops 5 python dependencies pip virtualenv pythonpath
我们正在尝试安装几个自己编写的 python3 应用程序,共享一些版本冲突的库。
我们目前正在讨论在 PYTHONPATH 和/或 python 虚拟环境中使用包的顺序。
你会如何处理这件事?
您可以使用pipx。
pipx 将完成为每个应用程序设置单独的虚拟环境的所有工作,以便所有应用程序的依赖项保持独立。
如果您自己使用 virtualenv,则必须切换环境才能运行不同的应用程序。pipx 会为您处理环境,因此您根本不必搞乱 virtualenvs。
来自文档:
pipx 专为应用程序安装而设计,因为它增加了隔离性,但仍然使应用程序在您的 shell 中可用:pipx 为每个应用程序及其关联的包创建一个隔离的环境。
您可以使用pipsi。
pipsi 将完成为每个应用程序设置单独的虚拟环境的所有工作,以便所有应用程序的依赖项保持独立。
如果您自己使用 virtualenv,则必须切换环境才能运行不同的应用程序。pipsi 会为您处理环境,因此您根本不必搞乱 virtualenvs。
来自文档:
如果您要全局安装 Python 包以进行 cli 访问,您几乎肯定希望使用
pipsi而不是运行,sudo pip ....以便获得
- 独立的依赖关系以保证没有版本冲突
- 无需使用 sudo 即可全局安装软件包的能力
- 能够卸载包及其依赖项而不影响其他全局安装的 Python 程序
为了进行依赖项隔离和管理,我始终为每个应用程序拥有一个 virtualenv。这可以防止应用程序间依赖性冲突的问题,并且如果应用程序的依赖性内存在依赖性冲突,则任何解决这些问题的黑客行为都仅限于受影响的环境。
此外,依赖项升级可以针对每个应用程序独立执行。
| 归档时间: |
|
| 查看次数: |
8468 次 |
| 最近记录: |