2012-11-20 71 views
0

從main.py,我想從後端文件夾導入文件如何從子目錄/子文件夾導入?

WebAppName/main.py WebAppName /後端/ handlers.py

如何指定這是一個import語句

我知道從同一個文件夾導入只是導入處理程序

但這是一個子目錄,所以我該怎麼做?

回答

2

當你做一個導入時,Python會搜索你在sys.path中列出的目錄中的任何東西,這是一個Python列表。爲了使模塊或其它代碼源導入的,只需將路徑代碼源附加到sys.path中:

sys.path.append(os.path.join(os.path.abspath('.'), 'backend')) 

該行後,然後做你的處理器的進口,它會工作。

好運, 邁克

+0

這是否工作沒有__ init __ .py文件? –

+0

是的。 __init__用於處理包。如果你正在使用一個軟件包,那麼其他答案就是要走的路。但是我不清楚你有沒有包裝。它認爲這將爲你工作。 – MikeHunter

+0

好的。謝謝Mike Who Hunts。 –

1

所以你要在main.py中導入handlers.py?如果你在後臺把一個__init__.py

import backend.handlers as handlers

應該工作

編輯:選項2

在main.py的開始,你可以通過做一些添加子文件夾到你的Python路徑像:

import sys 
sys.path.append('./backend') 
+0

是否不使用包裝屁股上面州人爲本的解決方案的工作? –

+0

第一個解決方案需要'__init __。py',我已經添加了第二個解決方案,通過添加路徑 –

+0

或實際上看到MikeHunter的路徑解決方案 –

2

你需要有一個__init__.py文件中的backend文件夾讓Python認爲它是。然後你可以做import backend.handlersfrom backend.handlers import foo

+0

是否需要在__init__文件中有任何內容或可以爲空? –

+1

'__init __。py'可以是空白文件。 –

+0

好的。我會試試看。謝謝! –