Кратно 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, кажется, работает!

Прости меня за пропавшие ())())()()(((

Другие вопросы по тегам