這是我的目錄樹如何從python中的其他目錄導入模塊?
Game/
a/
1.py
...
b/
2.py
在2.py我想從1.py.導入功能顯示首先我將兩個文件保存在同一個文件夾中沒有問題。但是如何從其他位置導入?
這是我的目錄樹如何從python中的其他目錄導入模塊?
Game/
a/
1.py
...
b/
2.py
在2.py我想從1.py.導入功能顯示首先我將兩個文件保存在同一個文件夾中沒有問題。但是如何從其他位置導入?
嘗試使用imp
:
import imp
foo = imp.load_source('filename', 'File\Directory\filename.py')
這就像導入正常,現在你可以使用文件採用進口
你那麼使用了什麼你把它命名爲(在這種情況下foo
)是這樣的:
foo.method()
希望那是什麼您是在尋找!
你也可以試試這個:
import sys
sys.path.append('folder_name')
確保你有一個__init__.py
文件要從導入,然後你有2個選項中的任何目錄;
例如現在您的代碼看起來就像這樣:
Game/
__init__.py
a/
__init__.py
1.py
...
b/
__init__.py
2.py
Game
文件夾在PYTHONPATH你現在可以在1.py
from ..a import 1
這是relative import做from Game.a import 1
在2.py
反之亦然你有兩個選擇:
另一個文件夾添加到sys.path
並通過名稱導入
import sys
sys.path.append('../a')
import mod1
# you need to add `__init__.py` to `../a` folder
# and rename `1.py` to `mod1.py` or anything starts with letter
或者創建的distutils包,比你將能夠使相對進口喜歡
from ..a import mod1
@Haidro相似,但我在尋找簡單的方法(不創建的distutils包) 。 – mridul