如果您的虚拟环境包含依赖于X
的软件包numpy-1.12
,并且您的系统网站包含依赖于Y
的软件包numpy-1.8
,那么你做的时候会发生
import X
import Y
或
import Y
import X
(假设您使用
创建了虚拟环境virtualenv --system-site-packages
或符号链接Y
)
答案 0 :(得分:3)
在安装时,依赖关系得到解决,而不是在导入时。因此,源代码中语句import X
和import Y
的顺序与您的问题无关,无关紧要。
virtualenv中安装的软件包将在这里获胜,因为这将是第一次在遍历sys.path
时找到numpy。检查属性numpy.__file__
会告诉您从中获取的属性,并且您可以运行python -m site
以查看为什么numpy
首先从该位置获取的详细信息。
实际上,软件包通常不指定硬固定到特定版本号的依赖项,但它们指定了一些范围(或者根本没有指定版本限制)。