Python 未找到模块,但具有init.py

Python 未找到模块,但具有init.py,python,importerror,Python,Importerror,我有以下目录结构 Head -- |--Data |--main |-- header.py |-- __init__.py |--dir1 |-- file.py |--dir2 |--dir3 |-- __init__.py 在file.pyI导入class Header中定义的Header.py使用从Head.main.Header导入* 我已经

我有以下目录结构

Head --
      |--Data
      |--main
            |-- header.py
            |-- __init__.py
      |--dir1
            |-- file.py
      |--dir2
      |--dir3
      |-- __init__.py
file.py
I导入
class Header
中定义的
Header.py
使用
从Head.main.Header导入*

我已经准备好了所有的
\uuuu init\uuuuuu.py
,但是当我运行
file.py
时,我仍然得到
导入错误:没有名为Head.main.header的模块

我正在使用PyCharm

我该如何解决它

运行
tree
我得到:

F:\PyCharmProjects\TestDir>tree
Folder PATH listing for volume MISC
Volume serial number is 0FCE-123A
F:.
├───.idea
├───Data
│   └───small
├───Head
    ├───dir1
    └───main

能否在file.py中包含导入代码?请同时查看此答案,它可能有您的解决方案:。那么告诉我们什么起作用了

这是因为导入尝试在tham file.py所在的同一文件夹中定位Head,首先必须在系统路径中包含Head文件夹,以便导入可以定位它。为此,请执行以下操作:

import sys,os
sys.path.append(os.path.abspath(os.path.dirname(os.path.dirname(__file__)))) 
把所有需要的dirname放到包含Head的文件夹中

那你的进口正常吗


它可能看起来有点难看,但优点是,如果您以后将proyect的文件夹移动到其他位置,您不必更改每个
sys.path.append
是否像这样执行
sys.path.append(“/folder1/folder2”)

能否使用
或等效工具向我们展示项目的整个结构,并向我们展示
setup.py
的内容?项目中没有setup.py。@AnimeshPandey您是如何解决问题的?该解决方案有效。但我很好奇
\uuuu init\uuuuuy.py
有什么问题?任何地方都有这样一种说法,
importorror
可以通过添加
\uuuu init\uuuuuu.py
来解决??