从同一目录的 Python 相对导入无法按预期工作



我有以下目录结构:

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

最新更新