Se você executar o ipython diretamente na linha de comando sem tê-lo instalado dentro do virtualenv em que está trabalhando, poderá obter um comportamento estranho, pois o iPython estará executando uma mistura de ambientes (todo o sistema + virtualenv) … normalmente você veria um aviso do seguinte modo
WARNING: Attempting to work in a virtualenv. If you encounter problems, please install IPython inside the virtualenv.
Python 2.7.3 (default, Jan 2 2013, 13:56:14)
Type "copyright", "credits" or "license" for more information.
IPython 0.13.2 -- 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]:
Para evitar isso, uso um alias que garante que o iPython seja carregado de dentro do venv … aqui está:
alias ipy="python -c 'import IPython; IPython.frontend.terminal.ipapp.launch_new_instance()'"
Editar: a partir do ipython 1.0, este é o novo alias
alias ipy="python -c 'import IPython; IPython.terminal.ipapp.launch_new_instance()'"
agora correndo ipy
saberei com certeza que estou correndo dentro do venv.