无法从父目录导入文件

约翰

我似乎无法从父目录导入python文件。我在bash中运行以下命令:

echo 'token="AAA111"' > config.py
mkdir scenarios
echo $'from .. import config\nprint(config.token)' > scenarios/test.py
python3 scenarios/test.py

但这给了我错误:

Traceback (most recent call last):
  File "scenarios/test.py", line 1, in <module>
    from .. import config
ValueError: attempted relative import beyond top-level package

我做错了什么?如何scenarios/test.py获取内容config.py

安德烈·K。

相对导入(点)是指包中的位置,不一定是任何目录。*)

如果要从父目录导入模块,则需要将其添加到模块搜索路径,例如:

...
echo $'import config\nprint(config.token)' > scenarios/test.py
PYTHONPATH=. python3 scenarios/test.py

*)如果您拥有以下树:

.
└── mypkg
    ├── __init__.py
    ├── config.py
    └── scenarios
        ├── __init__.py
        └── test.py

在您的示例中,使用from .. import configinmypkg/scenarios/test.py可以正常工作(从上面的parent调用mypkg/):

python3 -c 'import mypkg.scenarios.test'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章