Кратно jediepcserver.py для кратных virtualenvs
Я пытаюсь запустить кратные jediepcserver.py для кратных virtualenvs для разных проектов. Моя идея - иметь правильное автозаполнение в каждом из проектов, над которыми я работаю в Emacs.
Например, в настоящее время я работаю над двумя проектами, один из которых использует Django 1.5, а другой - Django 1.7, поэтому автозаполнение должно быть различным для каждого из проектов.
Это мой файл конфигурации:
(setq python-environment-directory "~/.virtualenvs")
(autoload 'jedi:setup "jedi" nil t)
(add-hook 'python-mode-hook 'jedi:setup)
(setq jedi:environment-root "jedi") ; name of the virtualenv
(setq jedi:server-command '("/home/humitos/.emacs.d/vendor/emacs-jedi/jediepcserver.py"))
(setq jedi:server-args
'("--virtual-env" "~/.virtualenvs/jedi"
"--log" "/tmp/jediepcserver.log"
"--log-level" "DEBUG"))
(setq jedi:complete-on-dot t)
(setq jedi:get-in-function-call-delay 500)
Я пытался использовать .dir-locals.el
внутри проектов, но я не мог заставить это работать.
(setq jedi:server-args
'("--virtual-env" "~/.virtualenvs/my-venv-project"
"--log" "/tmp/jediepcserver.log"
"--log-level" "DEBUG"))
Я думаю, что это должно быть возможно, но я уверен, что мне чего-то не хватает в конфигурации. Что это такое?
Заранее спасибо.
1 ответ
Из документации:
Если вы хотите использовать определенную версию Python, настройте переменную jedi:environment-virtualenv соответствующим образом и переустановите jediepcserver.py.
Это также говорит, что вы должны настроить jedi:environment-root
если вы установите jedi:environment-virtualenv
так...
мой.dir-locals.el выглядит так
((python-mode . ((python-shell-virtualenv-root . "/home/ale/.virtualenvs/env/")
(jedi:environment-root . "/home/ale/.virtualenvs/env/")
(jedi:environment-virtualenv . ("virtualenv" "--python" "/usr/bin/python3.4"))
)))
И я переустановить Jediserver, кажется, работает!
Прости меня за пропавшие ())())()()(((