Должен сразу сказать, что не смог настроить работу PyDev консоли с IPython. Без IPython всё работает ОК. Ключ --plain в составе argv не сработал. Конечно, IPython рулез, но имхо, PyCrust поудобнее будет. _Имхо_.
Итак, есть PyDev, есть его консоль. Как сделать так, чтобы она загружала shell Django со всеми модельками ? Пошаговая инструкция:
1) Забираем django-command-extensions, копируем файл
shell_plus.pyв
django/core/management/commands2) Window->Preferences->Pydev->Interactive Console->Initial interpreter commands.
Вводим следующее одной строкой (здесь с переносами для красоты):
import os;f=open(os.path.expanduser('~')+"/"+".pyconsole_path","r");3) текст этой незамысловатой программки сохраняем под каким-нибудь именем в домашний каталог:
project_path=f.readline();f.close();import sys;sys.path.append(project_path);
import settings;from django.core.management import execute_manager; execute_manager(settings,['','shell_plus'])
#!/usr/bin/pythonchmod само собой, далее, в Eclipse: Run->External Tools->Open external tools dialog, прописывается какое-нибудь название для программки, путь к ней, и в Arguments пишется:
import sys
import os.path
def main():
if len(sys.argv) < 2:
sys.exit(1)
f= open(os.path.expanduser('~') + "/" + ".pyconsole_path", "w")
f.write(sys.argv[1])
if __name__ == "__main__":
main()
${workspace_loc}${project_path}Что получается в результате ? Строка инициализации PyDev читает из файла ~/.pyconsole_path путь к каталогу проекта, который попадает туда после запуска программки. Добавляет этот путь с PYTHON_PATH, считывается файл settings и запускается менеджер с параметром shell_plus, в результате - шелл с загруженными моделями в Eclipse.
Т.е. пользоваться так - сначала запустить программку, которая в External Tools, потом запускать консоль. Программку нужно запускать, когда в Eclipse меняется рабочий проект.
Есть один косяк - после запуска шелла приходится один раз нажимать Enter. Это связано с тем, как интерпретатор обрабатывает код, размещённый в одну строку. Если знаете, как побороть, пишите !
Странно, не нашел в настройках Pydev раздел Interactive Console. Какая у вас версия Eclipse? Можете показать скриншот, где эта настройка лежит?
ОтветитьУдалитьСкриншот тут
ОтветитьУдалитьВерсия Pydev-последняя, версия Eclipse-3.3.2
ubuntu+ родные eclipse+pydev
ОтветитьУдалитьТоже нету Interactive Console.
Скрин ваш не видно.
У меня не родные, скачивал отдельно. Сейчас Eclipse уже есть новее, но я не обновлялся, потому что и так работает ОК :-) Pydev последний.
ОтветитьУдалитьСкриншот перевыложил тут.