簡體   English   中英

emacs-jedi沒有找到numpy完成

[英]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/#jediserver-command


編輯2

我不知道為什么會出現這種情況。 以下是解決問題的幾種方法。

  1. 在安裝jedi.el的目錄中運行make tryout tryout(如~/.emacs.d/el-get/jedi/ )。

    這將打開一個干凈的(即,它不會讀取您的設置)Emacs進程與jedi.el的最小設置。 讓我們看看你是否可以完成numpy和scipy。

  2. 你能在Emacs中導入numpy和scipy嗎? 您可以在Emacs和shell中使用不同的環境變量。 M-! python -c 'import numpy' RET M-! python -c 'import numpy' RET 如果這不會給你一個錯誤,那就沒關系了。

  3. 你能用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM