Python3错误的导入路径

时间:2018-05-03 22:13:48

标签: python python-3.x

我有一棵看起来像这样的树:

└──env
│
└──Project
    │
    ├── DirA
    │   ├── A_MAIN
    │       ├── __init__.py
    │       ├── FILES
    │           └── __init__.py
    │           └── fileA1
    │           └── fileA2
    │
    ├── FoldersB
    │   └── DirB
    │       ├── A_MAIN
    │           ├── __init__.py
    │           ├── FILES
    │               └── __init__.py
    │               └── fileA1
    │               └── fileA2
    ├── Tests
    │   └── test.py
    │   └── __init__.py
    │
    ├── __init__.py

在(两个)fileA1中我有类似的东西:

from A_MAIN.FILES.fileA2 import <CLASS>

无论出于何种原因,top fileA1正在从FoldersB /../../../ fileA2导入实现,而不是在同一目录中导入fileA2。

可能需要注意的是,所有文件夹名称,类名等都是相同的。我的预感是在sys.path中出错了,但是我在调​​试时遇到了麻烦。

sys.path:
[
'/Users/Shared/FolderX/FolderY/Project/Tests',
'/usr/local/Cellar/python/3.6.4_4/Frameworks/Python.framework/Versions/3.6/lib/python36.zip',
'/usr/local/Cellar/python/3.6.4_4/Frameworks/Python.framework/Versions/3.6/lib/python3.6', 
'/usr/local/Cellar/python/3.6.4_4/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload',
'/Users/Shared/FolderX/FolderY/env/lib/python3.6/site-packages',
'/Users/Shared/FolderX/FolderY/Project/FoldersB/DirB',
'/Users/Shared/FolderX/FolderY',
'/Users/Shared/FolderX/FolderY/Project/DirA/A_MAIN/irrelevant_package'
]

来自DirA ... / fileA1:

import A_MAIN.FILES.fileA2 as testImportPath

print(os.path.abspath(__file__))
# Results in: 
# /Users/Shared/FolderX/FolderY/Project/DirA/A_MAIN/FILES/fileA1

print(os.path.abspath(testImportPath.__file__))
# Results in:
# /Users/Shared/FolderX/FolderY/Project/FoldersB/DirB/A_MAIN/FILES/fileA2

我希望能够从Project目录中比较fileA1&(包含fileA2&#39; CLASS作为成员变量)中CLASS的实现,这就是我遇到这个问题的原因。奇怪的环境。

当前工作目录为/Tests/test.py

编辑:更新的树更正确,包括sys路径和os路径信息

0 个答案:

没有答案