如何导入驻留在父目录中的模块(python文件)?
两个目录都有一个__init__.py
文件,但我仍然无法从父目录导入文件?
在此文件夹布局中,脚本B正在尝试导入脚本A:
Folder A:
__init__.py
Script A:
Folder B:
__init__.py
Script B(attempting to import Script A)
Run Code Online (Sandbox Code Playgroud)
脚本B中的以下代码不起作用:
import ../scriptA.py # I get a compile error saying the "." is invalid
Run Code Online (Sandbox Code Playgroud)
jfs*_*jfs 67
您不导入导入模块的Python脚本.一些python模块也是可以直接运行的脚本(它们在模块级别执行一些有用的工作).
一般来说,最好使用绝对进口而不是相对进口.
toplevel_package/
??? __init__.py
??? moduleA.py
??? subpackage
??? __init__.py
??? moduleB.py
Run Code Online (Sandbox Code Playgroud)
在moduleB
:
from toplevel_package import moduleA
Run Code Online (Sandbox Code Playgroud)
如果您想以moduleB.py
脚本形式运行,请确保父目录toplevel_package
位于您的脚本中sys.path
.
Rob*_*ers 26
来自文档:
from .. import scriptA
Run Code Online (Sandbox Code Playgroud)
您可以在包中执行此操作,但不能在直接运行的脚本中执行此操作.从上面的链接:
请注意,显式和隐式相对导入都基于当前模块的名称.由于主模块的名称始终为"__main__",因此用作Python应用程序主模块的模块应始终使用绝对导入.
如果您创建导入ABB的脚本,则不会收到ValueError.
小智 6
如果你想直接运行脚本,你可以:
PYTHONPATH
)。sys.path
在脚本中添加路径。然后:
import module_you_wanted
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
107896 次 |
最近记录: |