21
(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  # :(
...

IPythonをグローバルにインストールしましたが、このmyvenvvirtualenvが正常にアクティブ化されている間は機能します。ただし、Djangoシェルを(の有無にかかわらず-i)起動すると、IPythonは使用されません。私はこれまでこの問題を経験したことがありません。

注:django-admin.pyvsmanage.pyは違いを生みません。

4

3 に答える 3

48

virtualenvにインストールしてみてください!:-)

于 2013-01-31T01:31:14.990 に答える
16

私は iPython が大好きですが、すべての virtualenvs にインストールするのは好きではありません。それを可能にする良い解決策を見つけました。を使用する代わりにpython manage.py shell、システム iPython を直接使用できます。

これが正しく機能するためには、プロジェクトに対応するように DJANGO_SETTINGS_MODULE を設定する必要があります。

export DJANGO_SETTINGS_MODULE=yourproject.settings

これが唯一の Django プロジェクトである場合、最も簡単な解決策は、その行を.bashrc.

複数の Django プロジェクトがあり、プロジェクトを切り替えるたびに変数を変更する必要がないようにしたい場合は、各プロジェクトに合わせて調整された上記のエクスポート行を、すべての Django virtualenv の postactivate スクリプトに追加できます。私にとって、postactivate スクリプトは にあり~/.virtualenvs/myvenv/bin/postactivateます。

于 2013-11-18T08:27:33.490 に答える
2

私の場合、それぞれが異なる Django プロジェクトに使用される複数の仮想環境 (デフォルトの --no-site-packages を使用して作成) で IPython を実行したいと考えています。各環境に IPython をインストールしたくありませ んでした。

@Arash さんがおっしゃる通り、DJANGO_SETTINGS_MODULE作品をエクスポートするのですが、複数のプロジェクトがあると管理が大変です。

私は最終的にこの問題を2つの部分で解決しました。

最初に、ディレクトリ「/usr/lib/python2.7/dist-packages」と「/usr/lib/pymodules/python2.7」を /usr/bin/ipython スクリプトの sys.path に追加しまし

次に、スクリプトを使用して、django-admin.py によって作成されたファイルを活用manage_to_ipython.pyするという、django プロジェクト固有のスクリプトを作成します。runipython.pymanage.py

各Djangoプロジェクトで1$cd <project_dir>回、実行しますpython manage_to_ipython.py

ここで、IPython を実行するには、次のように入力します。./runipython.py

変更された /usr/bin/ipython および manage_to_ipython.py スクリプトは、ここにあります。

于 2014-08-06T06:59:47.270 に答える