2016-12-13 48 views
0

所以,我想在當前的Python項目中輸入以前創建的類。在PyDev項目中包含多個模塊

爲此,我創建了一個名爲lib的文件夾,並在其中創建了一個__init__.py文件。 我的文件結構如下

project_folder 
    lib 
     class1_folder 
      class1.py 
     class2_folder 
      class2.py 
    _init_.py 
    project_script.py 

在位於主項目文件夾中的文件__init__.py,我有兩行代碼。

from class1_folder import class1 
from class2_folder import class2 

我希望能夠使用我在我的project_script.py中實現的類。如果他們嵌套得如此之深,我怎麼能打電話給他們呢? 在project_script,我下面from lib.class1_folder.class1 import *但我得到一個ImportError: No module named class1_folder

回答

0

您需要將__init__.py文件添加到每個應視爲包的文件夾中(對於您的示例,它們應添加到class1_folderclass2_folder)。

0

你所試圖做的是導入的文件class1.py,說進口的Class1,你真正需要做的是從內部導入類文件class1.py(我可以推薦重命名你的文件;他們讓事情有點混亂:))。所以,讓我們說,例如,你的類被命名爲狗和貓(只使用完全不同的東西,以避免混淆),你將需要使用:

from class1 import Dog 
from class2 import Cat 

只要牢記雖然,以上僅適用於所有文件都在同一目錄中的情況,所以我建議將它們全部保存在同一個目錄中。

還有一件事情,如果這仍然令人困惑,當我寫「從class1導入狗」時,該class1代表class1.py,它只是在末尾沒有文件擴展名。它不代表班級的實際名稱。

+0

不能用lib文件夾來完成嗎?這裏的問題是我想要創建一個統一的模塊以用於我的許多項目中。爲了滿足我的工作需求,我實現了特定的數據類型和IO功能。如果我將所有這些腳本放在1個項目文件夾中,那麼整個項目將非常混亂。 – Jack

相關問題