I would like to install the python-numpy in the Virtualenv environment. My system is Ubuntu 12.04, and my python is 2.7.5. First I installed the Virtualenv by
$
apt-get
will still install modules globally, even when you're in your new virtualenv
.
You should either use pip install numpy
from within your virtual environment (easiest way), or else compile and install numpy
from source using the setup.py
file in the root of the source directory (slightly harder way, see here).
I'd also thoroughly recommend you take a look at virtualenvwrapper, which makes managing virtual environments much friendlier.
You should not be using sudo
, either to create your virtual environment or to install things within it - it's a directory in your home folder, you don't need elevated permissions to make changes to it. If you use sudo
, pip
will make changes to your global site packages, not to your virtual environment, hence why you weren't able to install numpy
locally.
Another thing to consider is that by default, new *. In your case, since you'd already installed virtualenvs
will inherit from the global site-packages
- i.e. if Python can't find a module locally within your virtualenv
, Python will also look in your global site packagesnumpy
globally (using apt-get
), when you then try to pip install numpy
in your virtual environment, pip
sees that numpy
is already in your Python path and doesn't install it locally.
You could:
Pass the --no-site-packages
option when you create your virtualenv
. This prevents the new virtualenv
from inheriting from the global site packages, so everything must be installed locally.
Force pip
to install/upgrade numpy
locally, e.g. using pip install -U --force numpy
* As of v1.7, the default behaviour of virtualenv
is to not include the global site-packages
directory. You can override this by passing the --system-site-packages
flag when creating a new virtual environment.