[英]emacs-jedi does not find numpy completions
我安裝了emacs-jedi來為emacs中的python獲取一些代碼。 總的來說,我必須說我印象非常深刻! 它開箱即用,可以快速找到內置庫的完成情況。 但是,我將python用於科學目的,並依賴於numpy和scipy來完成我的工作。 出於某種原因,我沒有完成這些模塊的完成。
例:
import numpy
testVector = numpy.array([1,2,3])
現在輸入testVector。 等待,沒有任何表現
我想知道為什么它不起作用。 它看起來像sys.path
問題,但它應該沒有任何配置工作。 但是這里有一個關於蠻力修復的想法。
(1)運行以下腳本獲取numpy的加載路徑。
import os
import numpy
print(os.path.dirname(os.path.dirname(numpy.__file__)))
(2)設置jedi:server-args
這樣強制添加路徑。
(setq jedi:server-args
'("--sys-path" "THE/PRINTED/PATH/FOR/NUMPY"
"--sys-path" "THE/PRINTED/PATH/FOR/SCIPY"))
另見: 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))
另見: http : //tkf.github.com/emacs-jedi/#jedi : server-command
編輯2
我不知道為什么會出現這種情況。 以下是解決問題的幾種方法。
在安裝jedi.el的目錄中運行make tryout
tryout(如~/.emacs.d/el-get/jedi/
)。
這將打開一個干凈的(即,它不會讀取您的設置)Emacs進程與jedi.el的最小設置。 讓我們看看你是否可以完成numpy和scipy。
你能在Emacs中導入numpy和scipy嗎? 您可以在Emacs和shell中使用不同的環境變量。 跑M-! python -c 'import numpy' RET
M-! python -c 'import numpy' RET
。 如果這不會給你一個錯誤,那就沒關系了。
你能用env/bin/python
導入numpy和scipy嗎? 最好的方法是從Emacs檢查它。
所以首先轉到安裝jedi.el的目錄(例如, Cx Cf ~/.emacs.d/el-get/jedi/ RET
)。
然后運行M-! env/bin/python -c 'import numpy' RET
M-! env/bin/python -c 'import numpy' RET
。 如果這不會給你一個錯誤,那么應該可以導入numpy和scipy。
我希望其中至少有一個能給你一個錯誤,否則我需要考慮另一種可能性。
我可以完成這樣的案件。 喜歡以下
您可以使用舊的需求模塊(jedi,epc,argparse)。 您應該更新它們並再試一次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.