2012-05-09 62 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答案,找到你的網站,包路徑如果它不同於這裏使用的那個。