问题
I want to create a virtualenv without global python packages, but with the scipy distribution that is shared; installing scipy takes quite a while and I don't want to go through the motions too often.
So I run add2virtualenv /Library/Python/2.7/site-packages/scipy and after running add2virtualenv it shows the directory is added. (I doublechecked, it is the right directory).
Then I issue workon myfile to be sure the working directories are reloaded.
However, when I try to load scipy, it is an ImportError: No module named scipy. This is unexpected.
Has anyone used a global scipy in a non-global-sitepackages virtualenv?
回答1:
So, to summarize, the actual problem here is that the directory including the packages to be imported must be used, instead of the specific package. That is, instead of
add2virtualenv /Library/Python/2.7/site-packages/scipy
It should be
add2virtualenv /Library/Python/2.7/site-packages
Beware: this solution has the drawback that you do not only include scipy, but any other packages in /Library/Python/2.7/site-packages.
An alternate, space-efficent solution could be symlinking scipy directory inside the virtual env's site-package. This can be done, in your virtual env, through:
cdsitepackages
ln -s /Library/Python/2.7/site-packages/scipy scipy
All credits go to @rubik (see the comments)
Check out this answer to find your site-packages path in case it is different than the one used here.
来源:https://stackoverflow.com/questions/10518729/add2virtualenv-virtualenv-wrapper-does-not-work-with-scipy