2013-08-20 79 views
8

我正在嘗試導入一個遺留項目到pycharm進行調試。 的目錄結構如下:導入目錄到pycharm

頂層文件夾--->文件夾一個

頂層文件夾--->文件夾2

的問題是,在子文件夾中的程序使用:

import top 
from top import module 

Pycharm返回錯誤:「無模塊頂部名爲」

我怎樣才能解決這個問題?

+1

您的頂級文件夾是否有'__init __。py'文件?如果沒有,那麼它不是一個模塊。 –

回答

11

,以確保第一件事是做什麼遊戲說,你需要確保是代表一個包是通過將一個__init__.py文件,該文件是告訴解釋是,恰好名爲__init__.py一個空蟒蛇文件中完成的每個文件夾文件夾是一個python包。

要尋找的第二件事是pycharm喜歡抱怨導入的代碼,如果PyCharm不知道該目錄。進入項目解釋器配置並轉至路徑並添加不在項目中或直接位於解釋器下的路徑引用。

要添加的另一件事是通過右鍵單擊表示根目錄的文件夾並單擊「標記目錄爲...」>「源根目錄」來設置項目代碼的源根目錄。

+0

在我的項目中保存了很多紅色標記! –

+0

有沒有辦法告訴PyCharm在項目中的所有模塊/子文件夾中搜索?我們有一個非常高的目錄結構,並且將所有文件夾手動設置爲「源」非常困難。 – jimtut

+0

您不必將所有目錄設置爲只需設置根目錄的源。如果你有多個根,你可能會錯誤地組織你的項目。 – BrokenRobot

1

我遇到了同樣的問題,但這不是由於缺少init .py文件引起的。 原因是,項目中有兩個相同的名稱模塊,所以PyCharm不知道如何導入。奇怪的是PyCharm只在運行時報告這個錯誤。

我的項目文件:

source root1 
    |-- moduleA 
     |-- __init__.py 
     |-- A.py 

source root2 
    |-- moduleA 
     |-- __init__.py 
     |-- B.py 

其實,源目錄root1是我的代碼,源根-2是我的測試代碼。

所以解決辦法是改變測試模塊名稱。

source root1 
    |-- moduleA 
     |-- __init__.py 
     |-- A.py 

source root2 
    |-- testmoduleA 
     |-- __init__.py 
     |-- B.py