具有冲突依赖关系的Python包

时间:2016-04-08 12:56:40

标签: python dependencies pip virtualenv pythonpath

我们正在尝试安装几个自己编写的python3应用程序,这些应用程序共享一些具有冲突版本的库。

我们目前正在讨论在PYTHONPATH和/或pythons virtualenv中使用包的顺序。

你会如何处理?

2 个答案:

答案 0 :(得分:0)

对于依赖项隔离和管理,每个应用程序总是有一个virtualenv。这可以防止应用程序间依赖性冲突的问题,并且如果应用程序的依赖性中存在依赖性冲突,则解决它们的任何hackery都仅限于受影响的环境。

此外,可以根据应用程序独立执行依赖项升级。

答案 1 :(得分:0)

您可以使用the source

pipsi将完成为每个应用程序设置单独的虚拟环境的所有工作,从而使所有应用程序的依存关系保持独立。

如果您自己使用virtualenv,则必须切换环境以运行其他应用程序。 pipsi为您处理环境,因此您完全不必弄混virtualenvs。

从文档中

  

如果您正在全局安装Python软件包以进行cli访问,则您   几乎肯定要使用pipsi而不是运行sudo pip ....,所以   你得到

     
      
  • 隔离的依赖项以确保没有版本冲突
  •   
  • 无需使用sudo即可全局安装软件包的能力
  •   
  • 在不影响软件包的情况下卸载软件包及其依赖项的能力   其他全局安装的Python程序
  •