2017-05-07 291 views
2

添加模塊我有我的Python項目的以下文件夾結構:的Python:如何從同級文件夾

pythonApp    --> Folder 
|--ABC    --> Package 
    |--__init__.py  --> Empty File 
    |--abctest.py  --> Module 
|--DEF    --> Package 
    |--__init__.py  --> Empty File 
    |--deftest.py  --> Module 
|--Common    --> Package 
    |--__init__.py  --> Empty File 
    |--constants.py --> Module 

我想導入constants.pyCommon包在abctest.py下。使用from Common import constants將拋出錯誤Module not found。有沒有解決方案。

+0

你有'__init __。py'在'pythonApp'根目錄嗎? –

+0

@GarrettKadillak:是的,在pythonApp根目錄下,我有__init__.py文件 – Quest

回答

1
abctest.py

,添加父目錄使用__file__作爲當前模塊的名稱蟒蛇路徑,然後取目錄名稱的目錄名稱來計算它:

import os,sys 
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) 

from Common import constants 

說明:python 2似乎需要一個__init__.py文件(甚至爲空)在Common目錄下能夠識別Common作爲模塊,而python 3則不能。

+0

Fabre:我所做的是我直接在pythonApp文件夾下創建了一個run.py。我將run.py設置爲啓動文件。幷包含以下代碼:'import os,sys sys.path.append(os.path [0] +'\ ABC')'。它在當地運作良好。但是當我創建一個可執行文件時,它會崩潰。 – Quest

+0

你能告訴我們你是如何創建你的可執行文件的(也許編輯你的問題來包含那部分) –

相關問題