我的项目树非常简单,如:
test
├── __init__.py (has line: "foo = True")
├── bar.py (has line: "bar = False")
└── test.py (has line: "from . import foo; from .bar import bar")但test.py中的进口产品都不起作用。当我运行python test.py时,它返回:attempted relative import with no known parent package
我错过了什么吗?我正在使用python 3.7.6
发布于 2020-07-17 19:42:06
您的代码很好,但是测试文件需要作为包的一部分导入。因此,我创建了以下文件和目录,具体解释如下:
.
└── test
├── bar.py
├── __init__.py
├── __pycache__
└── test.py从test的父母那里,我运行了以下命令:
>>> import test
>>> import test.test
>>> import test.bar
>>> 效果很好。但是,如果要进行相对导入,则需要将要导入的代码作为包的一部分导入,而不是作为独立脚本执行。
发布于 2020-07-17 19:46:35
出现这个问题是因为您试图将foo从__init__.py文件导入为from . import foo,但要从__init__.py文件导入,则需要使用父文件夹模块,即from test import foo作为从__init__.py导入的结构。
发布于 2020-07-17 19:43:12
如果要从同一个文件夹导入文件,只需使用它们的文件名:
bar.py
bar = Falsefoo.py
foo = Truetest.py
from foo import foo
from bar import bar
print(foo, bar)运行python test.py返回:
True Falsehttps://stackoverflow.com/questions/62960714
复制相似问题