2012-05-09 78 views
6

我想创建一个没有全局python包的virtualenv,但是使用共享的scipy分布;安装scipy需要相当长的一段时间,我不想经常通过运动。add2virtualenv(virtualenv包装)不能与scipy一起工作

所以我运行add2virtualenv /Library/Python/2.7/site-packages/scipy并且在运行add2virtualenv之后它显示添加的目录。 (我选中了,它是正确的目录)。 然后我发出workon myfile以确保工作目录重新加载。 但是,当我尝试加载scipy时,它是一个ImportError: No module named scipy。这是意想不到的。

有没有人在非全球网站包virtualenv中使用全球scipy?

+1

add2virtualenv将指定的目录添加到PYTHONPATH中。因此,您应该添加整个站点包以导入scipy。 – rubik

+1

另一种解决方案应该是虚拟env的站点包 – rubik

+0

中的符号化scipy目录谢谢。所以我误解了应该使用add2virtualenv的方式。是否没有命令可以轻松添加特定的包? (除了符号链接?) – Okke

回答

3

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

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

应该

add2virtualenv /Library/Python/2.7/site-packages 

请注意:该解决方案具有您不仅仅包括SciPy的缺点,但在/Library/Python/2.7/site-packages任何其他包。


虚拟env的站点包内的​​替代,空间efficent溶液可符号链接SciPy的目录。这是可以做到,在你的虚拟ENV,通过:

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

所有学分去@rubik(见注释)

退房this答案,找到你的网站,包路径如果它不同于这里使用的那个。