【问题标题】:What happens when virtualenv and system site packages have conflicting dependencies?当 virtualenv 和系统站点包有冲突的依赖关系时会发生什么?
【发布时间】:2017-03-06 16:43:18
【问题描述】:

如果你的虚拟环境有包X,它依赖于numpy-1.12,而你的系统站点有包Y,它依赖于,比如numpy-1.8,当你这样做时会发生什么

import X
import Y

import Y
import X

?

(假设您使用

创建了虚拟环境
virtualenv --system-site-packages

或符号链接Y)

【问题讨论】:

    标签: python numpy virtualenv


    【解决方案1】:

    在安装时解决依赖关系,而不是在导入时。因此,源代码中语句import Ximport Y 的顺序与您的问题无关且无关紧要。

    安装在 virtualenv 中的包会在这里取胜,因为那将是遍历sys.path 时第一次找到 numpy。检查属性numpy.__file__ 将告诉您它是从哪里提取的,您可以运行python -m site 来查看为什么会首先从该位置提取numpy 的详细信息。

    实际上,包通常不指定硬固定到特定版本号的依赖项,但它们指定了一些范围(或根本不指定版本限制)。

    【讨论】:

      猜你喜欢
      • 2013-01-04
      • 2022-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-11
      • 1970-01-01
      相关资源
      最近更新 更多