0

次のプロジェクト構造があります。

Project
  - GUI
    - ...Modules
  - Data
    - Database
      - ...Modules
    - Files
      - ...Modules
  - Utilities
    - ...Modules

そして、たとえば、パッケージの境界を越えていくつかのインポートを実行しようとしています:

ファイル(モジュール)Project.Database.dbdriverでインポートしようとしていProject.Utilities.Conversionsます。このように完全に指定されたインポートを使用するとimport Project.Utilities.Conversions失敗しますが、それは動作しimport Utilities.Conversionsます。つまり、異なる部分以外のパスを指定することはできません。ただし、完全に指定されたパスを使用したいと思います.1つの理由は、Eclipseのpydevがそれらをより好むということです(そうしないと、エラーが表示されます).2番目の理由は、そうしないと混乱するからです.

私はこれにつまずきましたが、それは間違っている/ここでは必要ないと思います Pythonで名前空間パッケージを作成するにはどうすればよいですか?

質問:パッケージ構造でサブブランチを横断するときに、完全に指定されたインクルードを使用するにはどうすればよいですか?

4

1 に答える 1

1

Python (または jython) の現在の作業ディレクトリが Project に設定されていたため、完全に指定されたインポートが失敗しました。あなたはできる:

プロジェクトの親ディレクトリをpython libに追加します

import sys
sys.path.append('/parent/of/project')

または、デバッグ設定でjythonの作業ディレクトリをProjectの親に変更するだけです(pydevを使用していないため、方法がわかりません。)

于 2012-06-15T09:20:24.450 に答える