Python 导入父目录的孙目录时导入失败

Python import fails when importing grandchild of parent directory

我的目录结构如下:

C:\project\
|   __init__.py   
│
└───folder1
|   |    __init__.py
│   │
│   └───subfolder1
|       |   __init__.py
│       │   moduleA.py
│       │   moduleB.py
│   
└───folder2
    |   __init__.py
    └───subfolder2
        |   __init__.py
        │   myScript.py

在 myScript.py 文件中,我想从 moduleA.py 导入 类。我可以通过以下方式从模块 A 成功导入 类:

import sys
import os

sys.path.append('C:/project/folder1')

from subfolder1.moduleA import ClassA

然而,当我尝试使用以下方法导入时,我收到一个 ImportError“No module named moduleA”:

import sys
import os

sys.path.append('C:/project')

from folder1.subfolder1.moduleA import ClassA

我检查了项目/目录中所有文件的权限,并确保所有 __init__.py 文件都是空的(我将 __init__.py 从子文件夹 1 复制到所有其他 __init__.py 位置),此时我不确定为什么导入不正确。当前工作目录(由 print(os.getcwd()) 验证)表示 C:/project/folder2/subfolder2.

这是在 Windows 10 机器上使用 Python 2.7。

更新:我通过在 sys.path 的开头插入我的路径而不是附加它来解决这个问题。不知道为什么 Python 最初找不到该模块,但这修复了它:

sys.path.insert(0, 'C:/project')

而不是

sys.path.append('C:/project')