我有这样一个包的层次结构:
dir/
subdir1/
__init__.py
module3.py
module4.py
__init__.py
module1.py
module2.py
module2和module4中分别有一个msg
变量。在
我在module1中导入module2,它可以工作:
^{pr2}$但是当我在module3中导入module4时,vscode给出了一个错误:[pylint] E0401:Unable to import 'module4'
。但是,当我通过python .\subdir1\module3.py
运行它时,python解释器不会抱怨这一点,并且运行得很顺利:
import module4
print(module4.msg)
怎么了?在
问题是,您直接将模块作为文件路径执行。Python不知道
module3
在subdir1
包中,因此无法解析导入。如果你做了python -m subdir1.module3
,它会工作的。在相关问题 更多 >
编程相关推荐