1

我正在尝试为不同项目的多个 virtualenvs 运行多个 jediepcserver.py。我的想法是在我在 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"))

我认为这应该是可能的,但我确信我在配置中遗漏了一些东西。那是什么?

提前致谢。

4

1 回答 1

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,它似乎工作了!

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

于 2016-10-08T05:13:40.733 回答