倍增jediepcserver.py为倍数virtualenvs

时间:2014-05-26 16:18:35

标签: python django emacs jedi emacs-jedi

我试图为不同的项目运行倍数jediepcserver.py for multiples 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 个答案:

答案 0 :(得分:1)

来自documentation

  

如果您想使用特定版本的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,它似乎有效!

请原谅我失踪的())())()()(((