关于python:importError:没有名为的模块

ImportError: No module named

本问题已经有最佳答案,请猛点这里访问。

我有一个项目的文件夹结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
project:
    folder1:
        __init__.py
        file11.py
    folder2:
        __init__.py
        file21.py
    folder3:
        __init__.py
        file31.py
    __init__.py
    file1.py
    file2.py
    ..

从项目的根目录,我可以导入同一路径上的文件

例子,

在file1.py中,from file2 import 123from folder3.file31 import 456工作

在21.py文件中,import file1工程

执行此操作时会触发我的问题:

例子,

在21.py文件中,from folder3.file31 import xyz

这将引发类似importError的错误:没有名为folder3的模块

我的所有init文件都是空的,让python相信它们是包。我不明白为什么会这样。我想知道一个解决方案,以及一些关于它如何工作的小见解。


你应该写

1
from folder3.file31 import xyz

模块file31.py位于package project.folder3内,而不是仅位于project内,也不是与模块file21.py相同的包。尝试在file21.py中使用:

1
from folder3.file31 import xyz

而不是

1
from file31 import xyz