I know that virtualenv, if not passed the --no-site-packages
argument when creating a new virtual environment, will link the packages in /usr/local/lib/python2.7/site-packages
(for Python 2.7) with a newly-created virtual environment. On Ubuntu 12.04 LTS, I have three locations where Python 2.7 packages can be installed (using the default, Ubuntu-supplied Python 2.7 installation):
/usr/lib/python2.7/dist-packages
: this has my global installation of ipython, scipy, numpy, matplotlib – packages that I would find difficult and time-consuming to install individually (and all their dependences) if they were not available via the scipy stack.
/usr/local/lib/python2.7/site-packages
: this is empty, and I think it will stay that way on Ubuntu unless I install a package from source.
/usr/local/lib/python2.7/dist-packages
: this has very important local packages for astronomy, notably those related to PyRAF, STScI, etc., and they are extremely difficult and time-consuming to install individually.
Note that a global directory such as /usr/lib/python2.7/site-packages
does not exist on my system. Note also that my global installation of ipython, scipy, etc. lets me use those packages on-the-fly without having to source/activate a virtual environment every time.
Naturally, I now want to use virtualenv to create one virtual environment in my user home directory which I will source/activate for my future projects. However, I would like this virtual environment, while being created, to link/copy all of my packages in locations (1) and (3) in the list above. The main reason for this is that I don't want to go through the pip install
process (if it is even possible) to re-install ipython, scipy, the astro-packages, etc. for this (and maybe other) virtual environments.
Here are my questions:
- Is there a way for me to specify to virtualenv that I would like it to link/copy packages in these two
dist-packages
directories for virtual environments that are created in the future?
- When I eventually update my global installation of scipy, ipython, etc. in the two
dist-packages
directories, will this also update/change the packages that my virtual environment uses (and which it originally got during virtualenv creation)?
- If I ever install a package from source on Ubuntu, will it go in
/usr/local/lib/python2.7/dist-packages
, or /usr/local/lib/python2.7/site-packages
?
Thanks in advance for your help!
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…