6

我想创建一个没有全局 python 包的 virtualenv,但使用共享的 scipy 发行版;安装 scipy 需要相当长的时间,我不想经常经历这些动作。

所以我运行add2virtualenv /Library/Python/2.7/site-packages/scipy并在运行 add2virtualenv 后显示目录已添加。(我仔细检查了,它是正确的目录)。然后我发出workon myfile以确保重新加载工作目录。但是,当我尝试加载 scipy 时,它是一个ImportError: No module named scipy. 这是出乎意料的。

有没有人在非全局站点包 virtualenv 中使用全局 scipy?

4

1 回答 1

3

所以,总结一下,这里的实际问题是必须使用包含要导入的包的目录,而不是具体的包。也就是说,而不是

add2virtualenv /Library/Python/2.7/site-packages/scipy

它应该是

add2virtualenv /Library/Python/2.7/site-packages

请注意:此解决方案的缺点是您不仅包含 scipy,还包含/Library/Python/2.7/site-packages.


另一种节省空间的解决方案可能是在虚拟环境的站点包内对 scipy 目录进行符号链接。这可以通过以下方式在您的虚拟环境中完成:

cdsitepackages
ln -s /Library/Python/2.7/site-packages/scipy scipy

所有学分都归@rubik(见评论)

查看答案以查找您的站点包路径,以防它与此处使用的路径不同。

于 2013-10-06T10:04:20.263 回答