mik*_*ike 8 python emacs numpy python-jedi
我安装了emacs-jedi来为emacs中的python获取一些代码.总的来说,我必须说我印象非常深刻!它开箱即用,可以快速找到内置库的完成情况.但是,我将python用于科学目的,并依赖于numpy和scipy来完成我的工作.出于某种原因,我没有完成这些模块的完成.
例:
import numpy
testVector = numpy.array([1,2,3])
Run Code Online (Sandbox Code Playgroud)
现在输入testVector.等待,没有任何表现
我想知道为什么它不起作用.它看起来像sys.path问题,但它应该没有任何配置工作.但是这里有一个关于蛮力修复的想法.
(1)运行以下脚本获取numpy的加载路径.
import os
import numpy
print(os.path.dirname(os.path.dirname(numpy.__file__)))
Run Code Online (Sandbox Code Playgroud)
(2)jedi:server-args像这样设置强制添加路径.
(setq jedi:server-args
'("--sys-path" "THE/PRINTED/PATH/FOR/NUMPY"
"--sys-path" "THE/PRINTED/PATH/FOR/SCIPY"))
Run Code Online (Sandbox Code Playgroud)
另见:http://tkf.github.com/emacs-jedi/#jedi : server-args
编辑1
阅读你对@ syohex的答案的评论,看起来你混淆了一些安装方法.jeid.el在你有jedi.el的目录中使用virtualenv"env /",如果它存在的话.如果你有virtualenv,el-get会自动创建"env /".所以,如果你喜欢系统安装,你需要通过这样做告诉Jedi.el忽略"evn /":
(require 'jedi)
(setq jedi:server-command (list "python" jedi:server-script))
Run Code Online (Sandbox Code Playgroud)
另见:http://tkf.github.com/emacs-jedi/#jedi:server-command
编辑2
我不知道为什么会出现这种情况.以下是解决问题的几种方法.
make tryout在安装jedi.el的目录中运行(如~/.emacs.d/el-get/jedi/).
这将打开一个干净的(即,它不会读取您的设置)Emacs进程与jedi.el的最小设置.让我们来看看你是否可以完成numpy和scipy.
你能在Emacs中导入numpy和scipy 吗?您可以在Emacs和shell中使用不同的环境变量.跑M-! python -c 'import numpy' RET.如果这不会给你一个错误,那就没关系了.
你可以使用numpy和scipy导入env/bin/python吗?最好的方法是从Emacs检查它.
所以首先转到安装jedi.el的目录(例如C-x C-f ~/.emacs.d/el-get/jedi/ RET).
然后跑M-! env/bin/python -c 'import numpy' RET.如果这不会给你一个错误,那么应该可以导入numpy和scipy.
我希望其中至少有一个能给你一个错误,否则我需要考虑另一种可能性.
| 归档时间: |
|
| 查看次数: |
3152 次 |
| 最近记录: |