2017-04-21 68 views
1

我想從sub_file.py導入main_file.py,我有我的init文件設置。我能在我的main_file.py做:如何在Python中使用__init__導入頂層文件

from sub_folder.sub_file import * 

但是我不知道怎麼做周圍用另一種方式。

這是我的結構:

|+main_folder 
|--_init_.py 
|--main_file.py 
|++sub_folder 
|---_init_.py 
|---sub_file.py 
+0

使用下劃線('_')而不是'-'然後'import main_folder.main_file' – lmiguelvargasf

+1

您可能感興趣的這[Python解析項目](http://infinitemonkeycorps.net/docs/pph/ )。您可以執行代碼的[可編輯安裝](https://pip.pypa.io/en/stable/reference/pip_install/#editable-installs)以使其可像包一樣提供。 – russau

+0

它只是sudo代碼,但我試過了,但它似乎並沒有工作 –

回答

2

老辦法:

  • 確保與main_folder目錄是在你的sys.path;
  • from main_folder import main_file

new, usually better way

  • from ..main_folder import main_file

這有從未與系統衝突進口的優勢。如果您將您的main_folder重命名爲math,from math import my_func會崩潰,因爲stdlib的math不具備此功能,根據您的模塊導入,具體取決於sys.path。 OTOH from ..math import my_func肯定會從您自己的模塊中導入。

如果有疑問,請在導入聲明失敗之前始終使用print sys.path以瞭解您是否確實在查看正確的目錄。