2016-03-11 100 views
10

我在調試和運行時在pycharm中有輸入錯誤。如何導入位於pycharm項目中相同子目錄中的python文件

我的項目結構根植得當,etc./HW3/.因此HW3是根目錄。

我有一個HW3的子文件夾,util和一個文件,util/util.py。我在另一個文件util中調用run_tests.py

run_tests.py,我有以下進口結構,

from util.util import my_functions, etc. 

這給出了輸入錯誤,from util.util import load_dataset,proportionate_sample ImportError: No module named 'util.util'; 'util' is not a package


然而,在完全相同的項目,在其他目錄(同一水平我有一個文件data/data_prep.py,它還使用類似的import語句從util/util.py導入函數...並且它運行時沒有任何問題秒。


很顯然,我這樣做的功課,所以我沒那麼經歷過......但我已經這樣做了確切的配置在過去3個家庭作業,跑進零層的問題,所以我沒有想法如何甚至解決這個問題 - 尤其是當其他文件工作。


當我將文件移動到另一個目錄時,問題消失。所以我想這個問題是如何導入位於pycharm項目中相同目錄中的python文件?因爲如果我只是做import util pycharm會引發錯誤,並提示我使用根目錄中的全名。

+0

你有一個'__init __。py'如果沒有,創建一個,並添加來自'util.util進口my_function'然後嘗試文件 – danidee

+0

進口它,我把'__init__。在基本目錄(HW3在我的問題)與該行中的py'嗎? – bordeo

+0

no在'util'文件夾中,它告訴python它是一個包,'__init __。py'也可以用於導入/加載模塊 – danidee

回答

5

如果你沒有一個__init__.py創建一個並添加此行

from util.util import my_function 

,那麼你可以很容易地導入模塊中的腳本 的__init__.py告訴蟒蛇,它應該把該文件夾作爲一個Python包,它也可以用於導入/加載模塊。

在大多數情況下,__init__.py是空的。

報價

的__init__.py文件,才能使Python治療 目錄爲一個包的文檔;這樣做是爲了防止 目錄具有公共名稱(如字符串),無意中隱藏了稍後在模塊搜索路徑中發生的有效模塊。在 最簡單的情況下,__init__.py可以只是一個空文件,但它也可以爲包執行初始化代碼或設置__all__ 變量,稍後介紹。

2

Pycharm可以將.py文件,你會從同一文件夾導入之前只需添加.。你的情況,這將是

from .util import my_functions 
相關問題