9

emacsでpythonのコード補完を取得するためにemacs-jediをインストールしました。一般的に、私は非常に感銘を受けたと言わざるを得ません!それは箱から出してすぐにうまく機能し、組み込みライブラリの補完をすばやく見つけます。ただし、私は科学的な目的で python を使用し、自分の仕事では numpy と scipy に依存しています。何らかの理由で、これらのモジュールの完了が得られません。

例:

import numpy 

testVector = numpy.array([1,2,3])

今、testVector を入力します。待っていても何も表示されない

4

2 に答える 2

6

なぜうまくいかないのだろうか。問題のように見えます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

あなたの説明から、なぜそれが起こっているのかわかりません。問題を絞り込むためのいくつかの方法を次に示します。

  1. make tryoutjedi.el がインストールされているディレクトリ ( など) で実行します~/.emacs.d/el-get/jedi/

    これにより、jedi.el の最小限のセットアップでクリーンな (つまり、セットアップを読み取らない) Emacs プロセスが開きます。numpy と scipy を完了することができるかどうか見てみましょう。

  2. Emacs にnumpy と scipy をインポートできますか? Emacs とシェルで異なる環境変数を持つことができます。実行しますM-! python -c 'import numpy' RET。これでエラーが発生しなければ問題ありません。

  3. を使用して 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 をインポートできるはずです。

そのうちの少なくとも 1 つがエラーになることを願っています。それ以外の場合は、別の可能性について考える必要があります。

于 2013-02-06T00:37:45.607 に答える
1

そのような場合、私は完了を得ることができます。フォロー中のように

ここに画像の説明を入力

古い要件モジュール (jedi、epc、argparse) を使用できます。それらを更新して、再試行する必要があります。

于 2013-02-05T14:38:34.670 に答える