3

Ubuntu12.4または11.4のEclipse/PyDevでSciPy、Numpy、Matplotlibなどのコード補完を機能させることができません。最新バージョン(2.6)のEclipse HeliosとJuno、PyDevで試してみました。

コード補完は、たとえば内部プロジェクト参照またはビルトインに対して機能します。

「Preferences->Pydev->Interpreter-Python-> Libraries」へのパスを追加し、「Forced Builtins」にscipy、numpy、matplotlibを追加しました。[設定]->[PyDev]->[エディター]->[コード補完]で[文字の最小数...]が1に設定されています。[設定]->[PyDev]->[エディター]->[コード補完(ctx非依存およびトークン)]" chars for..."は両方とも2に設定されています。

インポートとコード補完はipythonシェル内で機能するため、PyDevでは何かである必要があると思います...

コード例:

import numpy as np
myArr = np.array([1,2,3])
myArr.set#<hit CTRL-SPACE for completion>

コードの完了は、ここでの配列メソッド(setasflat、setfield、setflags)を示唆していません。

提案をありがとう...:)

よろしく、カルステン

4

2 に答える 2

3

これは、メソッドによって返される型をpydevが把握できなかったために発生したと思いますnp.array。コードが長く、コード補完が何度も必要な場合は、pydev に myArr の型を「伝える」ことができます。使ってみてくださいassert:

import numpy as np
myArr = np.array([1,2,3])
assert isinstance(myArr, np.ndarray)
myArr.set#<hit CTRL-SPACE for completion>

その後、コード補完は常にmyArr変数に対して機能します。後で assert 行を削除またはコメントするか、Python インタープリターで「-O」フラグを使用できます。このページを見てください。

于 2012-07-24T22:32:19.863 に答える
1

最新の PyDev バージョンでは、ドキュメントを通じて PyDev にタイプを知らせることができるようになりました (アサート isinstance は必要ありません)。

詳細については、http: //pydev.org/manual_adv_type_hints.htmlを参照してください。

于 2013-09-06T17:24:40.173 に答える