我正在使用Anaconda python框架。 Anaconda拥有自己的虚拟环境系统,我不清楚virtualenv是否可以安全地与Anaconda一起使用。
Emacs Jedi似乎需要virtualenv。它是在“运行时”使用还是仅在安装期间使用?是否可以在没有安装virtualenv的情况下使用Jedi?一旦Jedi安装完成,可以卸载virtualenv吗?
有没有办法直接向Jedi开发人员提出这个问题? (找不到方法)
答案 0 :(得分:4)
有没有办法直接向绝地提问这个问题 开发商?
您可以使用生活here的github问题跟踪器。
emacs-jedi website表示virtualenv
是可选的,所以我猜jedi可以在没有它的情况下工作。如果您可以发布jedi
的安装方式或安装方式(手动,使用el-get或其他方式),那么此处的人员将能够为您提供更好的帮助。
<强>更新强>
以下是一种在没有jedi
virtualenv
的方法
1)从melpa安装jedi
。执行M-x list-packages
,按jedi
标记包I
,然后按X
安装软件包(就elisp而言,这将安装所有依赖项)
2)然后安装python依赖项,你可以从here下载requirements.txt,然后执行pip install -r requirements.txt
,这将安装python依赖项。
3)在打开python文件时添加一个python-mode挂钩来启动jedi,基本上将以下内容添加到你的init文件中
(autoload 'jedi:setup "jedi" nil t)
(add-hook 'python-mode-hook 'jedi:setup)
以上应该设置jedi,如果您在上述任何步骤中遇到问题,请不要犹豫
更新2
以下是让emacs-jedi使用'conda environment framework`的步骤(我使用miniconda但是即使安装了完整的conda也应该可以使用)
1)通过
创建一个conda环境(对于当前示例,环境名为emacs-jedi
)
conda create -n emacs-jedi python
2)为jedi,epc和sexpdata构建包(emacs-jedi需要)
a)克隆conda-recipes存储库
b)通过conda build /path/to/conda-recipies/<pkgname>
3)通过执行source activate emacs-jedi
切换到上面创建的环境并通过执行
conda install --use-local jedi sexpdata epc
--use-local
用于指示conda从本地构建的软件包安装
4)最后指示emacs将此环境与jedi一起使用,这只需将以下内容添加到您的init文件中
(eval-after-load "jedi"
'(setq jedi:server-command (list "/path/to/emacs-jedi/bin/python" jedi:server-script)))
答案 1 :(得分:2)
Jedi.el开发这里。从Jedi.el v0.2.0开始,virtualenv成为默认值,强烈推荐。仍支持手动安装,但不鼓励,因为您需要手动同步Jedi.el和Python模块的版本。参见:
我不知道蟒蛇是什么,但我想这里有自己的环境。如果它只是virtualenv的包装,那么请按照手册中的说明操作并使用--virtual-env
。如果没有,您可以使用--sys-path
告诉Jedi.el有关其他站点路径的信息。参见:
首先,您需要找到特定于anaconda的站点路径。运行
python -c 'import sys; print(sys.path)'
<>在anaconda中找到一些特定于anaconda的路径(我不知道它会是什么。但我想它包括&#34; anaconda&#34;在路径中)。然后使用--sys-path
添加这些路径。有关代码,请参阅jedi:server-args
文档。
答案 2 :(得分:0)
这是我设置jedi:server-command
变量的方法:
(setq jedi:server-command
`("python"
,(concat (file-name-directory
(buffer-file-name
(car
(find-definition-noselect 'jedi:setup nil))))
"jediepcserver.py")))