2016-06-27 14 views
0

私はいくつかのプロジェクトを持っています。そのため、ファイルをコピーするのではなく、異なるアプリケーションで使用される部分をモジュールに移動しました。パッケージを正しくインポートする方法

今、私は(すべてのモジュールは、独自のドキュメントやテストを持っている)私のモジュールのための以下の構造を有する:

/projects 
    /module1 
    __init__.py 
    run_tests.py 
    /docs 
     ... 
    /module1 
     __init__.py 
     module1.py 
    /tests 
     __init__.py 
     module1_test.py 
    /module2 
    ... 

は今、私は自分自身に同じようにレイアウトされた「メインアプリ」ディレクトリを得ました

/projects 
    run_app.py 
    run_tests.py 
    /docs 
    ... 
    /app 
    __init__.py 
    app.py 
    module1 <-- Link to the module1 repository 
    /tests 
    __init__.py 
    app_tests.py 

すべての私の__init__.pyのファイルは、現時点では空であり、私は私のapp.pyファイルに適切なimport文を書く方法を知りません。モジュール1にクラスが1つしかないので、import module1.module1.module1.ModuleClassModuleClassを「モジュールレベル」にインポートする必要がありますので、import module1.ModuleClassのような処理を行うことができます。私は__init__.pyファイルを微調整しなければならないと思っていますが、私が試したのはテスト全体かインポート全体を壊しただけです。

すべてのヘルプは非常に感謝し、私はネイティブスピーカーではないよ、私の貧しい人々の説明のために残念ことになる...

+0

サブモジュールごとに 'setup.py'を書いて、それらを依存関係としてインストールすることができます – jonrsharpe

答えて

0

[OK]を、私は解決策を自分自身を発見しました。いつものように、それはかなりまっすぐだった。

すべての__init__.pyファイルに次の行をモジュールの先頭に再帰的に追加するだけでした。

from .module1 import ModuleClass 

誰かが同じような状況に終わるかもしれない場合、私は、将来の参照のためにここにこれを残します。

乾杯

関連する問題