ipython installed in virtualenv seems not to use virtualenv

becky_lewis bex.lewis at gmail.com
Thu Aug 11 06:28:35 EDT 2011

Just to add ...

I ran through creating a virtualenv in the same manner as you:

$ virtualenv SomeEnv
$ source SomeEnv/bin/activate
(SomeEnv)$ which pip
(SomeEnv)$ pip install ipython
Requirement already satisfied (use --upgrade to upgrade): ipython in /
Cleaning up...
(SomeEnv)$ pip install ipython --upgrade
... pip installs ipython ...
(SomeEnv)$ which ipython

(SomeEnv)$ ipython
Python 2.6.4 (r264:75706, Dec  7 2009, 18:45:15)
Type "copyright", "credits" or "license" for more information.

IPython 0.11 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import os

In [2]: os.__file__
Out[2]: '/home/user/virtual/SomeEnv/lib/python2.6/os.pyc'

In [3]: import dbus

In [4]: dbus.__file__
Out[4]: '/usr/lib/pymodules/python2.6/dbus/__init__.pyc'

ipython is using the virtualenv when it can find them and the system
wide packages when they are not in the virtualenv. Hope that helps you
track down the problem :/

On Aug 11, 9:59 am, Gelonida N <gelon... at gmail.com> wrote:
> Hi,
> 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.
> Why?
> 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
> dependencies.
> 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