这是我的目录树如何从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