Ответ 1
Попробуйте установить его в virtualenv!: -)
(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 установлен глобально, и он работает, пока этот myvenv
virtualenv активирован просто отлично. Однако, если я запускаю оболочку Django (с или без -i
), она не будет использовать IPython. Раньше у меня никогда не было этой проблемы.
Примечание: django-admin.py
vs manage.py
не будет иметь значения.
Попробуйте установить его в virtualenv!: -)
Мне нравится iPython, но мне не нравится устанавливать его во всех моих виртуальных виртуальных машинах, и я нашел хорошее решение для этого. Вместо использования python manage.py shell
вы можете просто использовать систему iPython напрямую.
Чтобы это работало правильно, вам нужно установить DJANGO_SETTINGS_MODULE, чтобы он соответствовал вашему проекту.
export DJANGO_SETTINGS_MODULE=yourproject.settings
Если это ваш единственный проект Django, самым простым решением является добавление этой строки в ваш .bashrc
.
Если у вас несколько проектов Django и вы хотите не менять переменную при каждом переключении между проектами, вы можете добавить эту линию экспорта выше, адаптированную для каждого проекта, к сценариям postactivate всех ваших виртуальных виртуальных машин Django. Для меня postactivate script находится в ~/.virtualenvs/myvenv/bin/postactivate
.
В моем случае я действительно хочу запустить IPython в нескольких виртуальных средах (созданных с использованием пакетов по умолчанию --no-site-packages), которые используются для другого проекта Django. Я не хотел устанавливать IPython в каждом env.
Как упоминал @Arash, экспорт DJANGO_SETTINGS_MODULE
работает, но с ним сложно справиться, когда у вас несколько проектов.
Я, наконец, решил эту проблему в двух частях.
Сначала я добавил каталоги "/usr/lib/python2.7/dist-packages" и "/usr/lib/pymodules/python2.7" to sys.path в /usr/bin/ipython script как упоминалось здесь.
Затем я использую manage_to_ipython.py
script, чтобы создать script django-project-проект под названием runipython.py
, используя файл manage.py
, созданный django-admin.py
Раз в каждом проекте Django $cd <project_dir>
затем запустите python manage_to_ipython.py
Теперь для запуска IPython просто введите ./runipython.py
Модифицированные скрипты /usr/bin/ipython и manage_to_ipython.py можно найти здесь.