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')
我的目录结构如下:
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')