无法理解相关导入

时间:2018-03-24 14:50:41

标签: python-3.x

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

获得相对导入路径的正确方法是什么?我最初在将测试放在与各自模块相同的文件夹中时遇到了这个问题,并且无法弄清楚如何使我的导入正确。我知道有其他组织我的项目的方法,但仍想尝试了解如何使这项工作。

1 个答案:

答案 0 :(得分:0)

导入文件时,Python只搜索当前目录,运行入口点脚本的目录,以及包含软件包安装目录等位置的long(它实际上是比这更复杂,但这涵盖了大多数情况。)

但是,您可以在运行时添加到Python路径:

long long