ipython installed in virtualenv seems not to use virtualenv

Gelonida N gelonida at gmail.com
Thu Aug 11 10:59:40 CEST 2011


Short version
I have a system with ipython installed by my Ubuntu distribution
I created a virtualenv with
> virtualenv ~/myenv
I installed ipython
> pip install ipython --upgrade
When using ipython I notice, that it does import the modules from my
default python setup and not from  my virtualenv.

What could I have done differently?

Long version

I created a  virtualenv with

virtualenv ~/myenv

THis inherits my machines site packages.
The reason I'm not using

virutalenv --no-site-packages ~/myenv

is that I would like to use some of the site packages,
in particular some, that I don't want to compile due to huge package

Small problem is, that if I run ipython in a virtualenv
it will still call /usr/bin/ipython

and if I check the modules, that I import I seem to import the modules
of my default environment and not the ones of my virtualenv.

So I decided I will install my own version of ipython in my virtualenv

The output if pip install ipython is a little confusing.
> Requirement already satisfied (use --upgrade to upgrade): ipython in /usr/lib/pymodules/python2.6

As I am a normal user and I don't have permissions to overwrite /usr/lib
I decided to just give it a try and hope it will install in my
virtualenv path and not in /usr/lib/...

After running
> pip install ipython --upgrade

I have my own version of ipython.

However when calling and using it I notice it still imports the modules
from my default python and not from my virtualenv?

Why does ipython ignore the virtualenv's settings?

I know there are workarounds, but I wondered why it doesn't work out of
the box.

More information about the Python-list mailing list