2

pydev を使用して pyclutter アプリケーションを開発しています。Clutter はインタープリター パスに追加され、強制ビルトインのリストに含まれていますが、Clutter の名前空間内のすべてのオブジェクトが「インポートの欠落」エラー (つまり、赤い波線) として表示されます。

pydev のイントロスペクションをより堅牢にする別の方法はありますか? pygobject を使用して共有 C ライブラリからオブジェクトをプルするため、クラッターの内容を内省するのは通常よりも難しいのではないかと思いますが、IDE 内の Python デバッガーを使用してモジュールの内容を見ると、パッケージはすべて表示されます。

ありがとう、

4

1 に答える 1

2

そこにオブジェクト(たとえば、「mypy.lib」)を追加すると、PyDevはシェルを作成し、そのモジュールをインポートして(つまり、mypy.libをインポート)、その中でdirを実行します(つまり、dir(mypy。 lib))。

何らかの理由でdir()を実行してもコマンドラインでは機能するが、コード完了では機能しない場合、これはPyDevの問題である可能性がありますが、実際の問題は、一部のライブラリが実際に持っているものを公開しないことだと思いますdir()で、「既知の」属性にアクセスするとき。この場合、現在、それを機能させる唯一の方法は、実際のインターフェイスを使用してモジュールを作成するか(必要に応じてアクセスする)、または「事前定義された完了」を提供することです。 -http: //pydev.org/manual_101_interpreter.htmlの「PredefinedCompletions」トピックを参照してください。

編集:上記のケースが役に立たなかった場合、それは「通常」PYTHONPATHの設定ミスの問題です(つまり、モジュールを追加した後、インタプリタ設定に移動し、不足しているパスを追加する必要があります-通常、追加/削除するだけでトリックが実行されます、ただし、実際のパス自体に何も変更がない場合は、インタープリターの構成ページに移動し、「適用」を押して、インデックスを再作成するインタープリターを選択することができます)-これがまだ問題ではない場合はお知らせください(ちなみに、ここにクラッターをインストールしましたが、正常に機能しています)。

于 2012-04-18T23:52:25.687 に答える