Python同级目录导入错误

时间:2020-05-11 03:42:25

标签: python module directory package python-import

我的导入不显示任何掉毛错误(flake8),但是在运行时会生成ModuleNotFoundError。

可以从__main__.pybar.py启动应用程序。这两个模块都调用bar.py。调用__main__时,该应用程序似乎可以运行,但是运行bar时出现以下错误:

Traceback (most recent call last):
  File "a:/Git/repo/lib/data/bar.py", line 1, in <module>
    from src.foo import classA
ModuleNotFoundError: No module named 'src'

目录结构

repo
└── lib
    ├── src
    │   ├── __init__.py
    │   ├── __main__.py
    │   └── foo.py
    ├── data
    │   ├── __init__.py
    │   └── bar.py
    └── __init__.py

主要

from foo import classA

foo

class classA:
    def dostuff(x):
        ...

from src.foo import classA 

1 个答案:

答案 0 :(得分:0)

如果尝试从模块导入,则需要确保为您提供与要导入的文件在结构中位置有关的上下文。

bar.py中,您需要注意datasrc处于同一级别,因此在引用src:from ..src.foo import ClassA之前,您必须上升一个级别。您问题中的from src.foo等同于from .src.foo,它将在foo目录中搜索data