为什么Django不会使用IPython?

oro*_*aki 20 python django virtualenv ipython

(myvenv)me:src orokusaki$ python manage.py shell -i ipython
Python 2.7.2 (default, Jun 16 2012, 12:38:40) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> while True:
...     pass  # :(
...
Run Code Online (Sandbox Code Playgroud)

我已经在全球范围内安装了IPython,并且它可以在这个myvenvvirtualenv被激活时正常工作.但是,如果我启动Django shell(有或没有-i),它将不会使用IPython.我以前从未遇到过这个问题.

注意:django-admin.pyvs manage.py不会有所作为.

Mik*_*ass 46

尝试将其安装到virtualenv!:-)

  • 是否有办法(黑客/解决方法)使用系统范围的IPython? (3认同)

Ara*_*shi 14

我喜欢iPython,但不喜欢在我所有的virtualenvs中安装它,我找到了一个很好的解决方案来实现这一目标.python manage.py shell您可以直接使用系统iPython 而不是使用它.

为了使其正常工作,您需要设置DJANGO_SETTINGS_MODULE,使其与您的项目相对应.

export DJANGO_SETTINGS_MODULE=yourproject.settings

如果这是您唯一的Django项目,最简单的解决方案是将该行添加到您的.bashrc.

如果你有几个Django项目并且想要避免每次在项目之间切换时都必须更改变量,那么可以将上面为每个项目定制的导出行添加到所有Django virtualenvs的postactivate脚本中.对我来说,postactivate脚本位于~/.virtualenvs/myvenv/bin/postactivate.

  • +1作为替代解决方案,但我将另一个作为正确答案,只是因为您的解决方案有点黑客。 (2认同)