在两个具有相同名称的文件夹中导入python

import in python when two folders with same name

我有一个不寻常的情况。

1
2
3
4
5
6
7
8
9
10
11
12
13
── folder1
     ├── run.py
     └── pgm.py

── folder2
      └── src
           ├── fileA.py
           └── fileB.py

── folder3
      └── src
           ├── file1.py
           └── file2.py

文件夹1是我的,文件夹2和3在分叉中,我不想更改它,我不确定是否可以将这三个文件夹放在上方的文件夹中。

在run.py中,我有:

1
2
    sys.path.append(path_folder2)
    from src.fileA import classA

A级,打电话给pgm.py感谢:

1
     module = importlib.import_module('pgm')

pgm尝试在folder3.src中导入file1.py,folder3.src只导入自己的folder3文件。将文件夹3添加到路径会引发导入错误。我想这是因为python在folder2的子文件夹src中查找,我如何才能强制在folder3中查找?

事实上,我希望在folder2环境中,就像文件夹3不存在一样,然后在folder3中,就像folder2在相同的执行过程中不存在一样。我该怎么做?

注:我没有为可读性写init.py,但它们在我的文件夹和子文件夹中我尝试使用path,在导入file1.py之前删除folder2,但没有成功。


导入时可以重命名模块,如下所示:

1
2
from src.fileA import classA as fileAclassA
from src.fileB import classA as fileBclassA