我有以下目录结构:
pkg/
sub1.py
sub2.py
从 sub1.py 我可以成功地导入sub2:import pkg.sub2
或相对导入为from . import sub2
,但我认为以下相对导入:import .sub2
也应该工作,但它没有。我得到一个SyntaxError: invalid syntax
为什么这不起作用?
import
不采用.
这是无效的语法。
在相对导入中,请始终使用from
关键字!总是! 如果您想单独使用import
,那么这将是一个abs import
。只需使用 :
import sub2
一般来说,相对进口是有风险的,并尽量减少这种进口的使用。
在您的情况下,如果要以相对方式导入sub2.py
模块: Python 中的正确方法是:
from . import sub2
第一次键入时。
再举一个相对导入用法的例子。 你没有问,但我发现附上这个例子是正确的:
pkg/
sub1.py
sub2.py
pkg2/
foo.py
Supose 我在 foo.py,我想从 sub1.py 导入class clsTemp
然后以相对方式导入此类的正确方法:
from ..sub1 import clsTemp