我知道有人问过类似的问题,但在这个简单的设置中,我发现的内容对我来说并不是很清楚。鉴于此目录树,我如何从file1.pyinto导入函数file2(我们从 中调用解释器file2.py)?我希望此设置在位置main_folder上独立工作,也就是说,如果我复制main_folder到不同的目录,导入仍然可以正常工作。
main_folder
folder1
file1.py (with a function func())
folder2
file2.py
Run Code Online (Sandbox Code Playgroud)
您可以使用SourceFileLoaderfromimportlib.machinery从路径导入。
所以你可以使用:
# file2.py
from importlib.machinery import SourceFileLoader
PATH = "../folder1/file1.py"
file1 = SourceFileLoader("module.name", PATH).load_module()
Run Code Online (Sandbox Code Playgroud)
或者,如果您想import从包中获取,则可以使用:
# file2.py
from folder1.file1 import func
Run Code Online (Sandbox Code Playgroud)
如果您想使用包方法,那么您将需要从 运行它main_folder。
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |