0

我有以下目录结构:

pkg/
    sub1.py
    sub2.py

从 withing sub1.py 我可以成功地导入 sub2 with:import pkg.sub2或使用相对导入,from . import sub2但我认为以下相对导入:import .sub2应该也可以,但事实并非如此。我得到一个SyntaxError: invalid syntax 为什么这不起作用?

4

1 回答 1

0

import不采用.this is invalid 语法。

在相对导入中始终使用from关键字!总是!如果您想单独使用,import那么这将是一个abs import. 只需使用:

import sub2

一般来说,相对进口是有风险的,尽量减少这种进口的使用。

在您的情况下,如果您想以sub2.py相对方式导入模块:python中的正确方法是:

from . import sub2正如你第一次输入。

再举一个使用相对进口的例子。你没有问,但我发现附上这个例子是正确的:

pkg/
    sub1.py
    sub2.py
    pkg2/
         foo.py

假设我在 foo.py 中,我想从 sub1.py 导入,class clsTemp那么以相对方式导入此类的正确方法:

from ..sub1 import clsTemp
于 2020-07-04T20:52:02.387 回答