2016-06-27 46 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文件正確的導入語句。由於module1中只有一個類,所以我不需要hugh import module1.module1.module1.ModuleClass,因此應該將ModuleClass導入到「模塊級」,因此我可以執行類似於import module1.ModuleClass的操作。我想我必須調整__init__.py文件,但我所有的嘗試都打破了測試或整個導入。

任何幫助將是非常讚賞和我那可憐的解釋很抱歉我不是母語的人......

+0

您可以爲每個子模塊編寫一個'setup.py'並將它們安裝爲依賴關係 – jonrsharpe

回答

0

好吧,我找到了自己的解決方案。一如既往,它非常簡單。

我只需將所有__init__.py文件中的以下行遞歸添加到模塊的頂部。

from .module1 import ModuleClass 

如果有人可能在相同的情況下結束,我會在這裏留下以供將來參考。

乾杯