python的新手,我知道有很多类似的问题,但我仍然无法理解软件包导入的工作原理。
我有一个像这样的目录设置
src/
|-- foo/
| |-- __init__.py
| |-- test_foo.py
| |-- foo.py
|-- bar/
| |-- __init__.py
| |-- bar.py
|-- __init__.py
test_foo.py导入foo,工作正常。但后来我想要foo导入bar(一个类)。我尝试了各种
的组合from ..bar.bar import bar
但我总是收到错误
ValueError: attempted relative import beyond top-level package
获得相对导入路径的正确方法是什么?我最初在将测试放在与各自模块相同的文件夹中时遇到了这个问题,并且无法弄清楚如何使我的导入正确。我知道有其他组织我的项目的方法,但仍想尝试了解如何使这项工作。
答案 0 :(得分:0)
导入文件时,Python只搜索当前目录,运行入口点脚本的目录,以及包含软件包安装目录等位置的long
(它实际上是比这更复杂,但这涵盖了大多数情况。)
但是,您可以在运行时添加到Python路径:
long long