從main.py,我想從後端文件夾導入文件如何從子目錄/子文件夾導入?
WebAppName/main.py WebAppName /後端/ handlers.py
如何指定這是一個import語句
我知道從同一個文件夾導入只是導入處理程序
但這是一個子目錄,所以我該怎麼做?
從main.py,我想從後端文件夾導入文件如何從子目錄/子文件夾導入?
WebAppName/main.py WebAppName /後端/ handlers.py
如何指定這是一個import語句
我知道從同一個文件夾導入只是導入處理程序
但這是一個子目錄,所以我該怎麼做?
當你做一個導入時,Python會搜索你在sys.path中列出的目錄中的任何東西,這是一個Python列表。爲了使模塊或其它代碼源導入的,只需將路徑代碼源附加到sys.path中:
sys.path.append(os.path.join(os.path.abspath('.'), 'backend'))
該行後,然後做你的處理器的進口,它會工作。
好運, 邁克
所以你要在main.py中導入handlers.py?如果你在後臺把一個__init__.py
import backend.handlers as handlers
應該工作
編輯:選項2
在main.py的開始,你可以通過做一些添加子文件夾到你的Python路徑像:
import sys
sys.path.append('./backend')
是否不使用包裝屁股上面州人爲本的解決方案的工作? –
第一個解決方案需要'__init __。py',我已經添加了第二個解決方案,通過添加路徑 –
或實際上看到MikeHunter的路徑解決方案 –
你需要有一個__init__.py
文件中的backend
文件夾讓Python認爲它是包。然後你可以做import backend.handlers
或from backend.handlers import foo
是否需要在__init__文件中有任何內容或可以爲空? –
'__init __。py'可以是空白文件。 –
好的。我會試試看。謝謝! –
這是否工作沒有__ init __ .py文件? –
是的。 __init__用於處理包。如果你正在使用一個軟件包,那麼其他答案就是要走的路。但是我不清楚你有沒有包裝。它認爲這將爲你工作。 – MikeHunter
好的。謝謝Mike Who Hunts。 –