Python add2virtualenv(virtualenv包装器)不适用于scipy

Python add2virtualenv(virtualenv包装器)不适用于scipy,python,macos,scipy,virtualenv,virtualenvwrapper,Python,Macos,Scipy,Virtualenv,Virtualenvwrapper,我想创建一个没有全局python包的virtualenv,但是使用共享的scipy发行版;安装scipy需要相当长的时间,我不想做太多的动作 因此,我运行了add2virtualenv/Library/Python/2.7/site packages/scipy,在运行add2virtualenv之后,它显示了添加的目录。(我仔细检查了一下,它是正确的目录)。 然后我在myfile上发出work,以确保工作目录已重新加载。 但是,当我尝试加载scipy时,它是一个导入错误:没有名为scipy的模

我想创建一个没有全局python包的virtualenv,但是使用共享的scipy发行版;安装scipy需要相当长的时间,我不想做太多的动作

因此,我运行了
add2virtualenv/Library/Python/2.7/site packages/scipy
,在运行add2virtualenv之后,它显示了添加的目录。(我仔细检查了一下,它是正确的目录)。 然后我在myfile上发出
work
,以确保工作目录已重新加载。 但是,当我尝试加载scipy时,它是一个
导入错误:没有名为scipy的模块。这是出乎意料的


是否有人在非全局sitepackages virtualenv中使用了全局scipy?

因此,总结一下,这里的实际问题是必须使用包含要导入的包的目录,而不是特定的包。也就是说,而不是

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(见备注)


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

add2virtualenv将指定的目录添加到PYTHONPATH。因此,您应该添加整个站点包以导入scipy。另一种解决方案应该是将virtual env的站点包内的scipy目录进行符号链接谢谢。所以我误解了add2virtualenv的使用方式。是否没有可以轻松添加特定包的命令?(除了符号链接?)我不知道VirtualVWrapper是如何工作的,但我不这么认为。。。对我来说,符号链接似乎是一个很好的解决方案。毕竟,virtualenv站点包中的许多模块都是符号链接的。我通常做的是创建一个“基本”virtualenv,其中包含
——无系统站点包
、pip安装scipy、numpy等,然后在我想要新的“一次性”virtualenv时使用
cpvirtualenv
克隆它。