Python:如何从具有相同名称的包导入子模块?

Chr*_*son 1 python import module

我有一个项目设置如下:

基础项目

/some_disk/some_folder/
|-- project/
|   |-- package/
|   |   |-- src/
|   |   |   |-- file_a.py
|   |   |   |-- file_b.py
Run Code Online (Sandbox Code Playgroud)

扩建项目

/some_other_disk/some_folder/
|-- project/
|   |-- package/
|   |   |-- src/
|   |   |   |-- file_c.py
|   |   |   |-- file_d.py
Run Code Online (Sandbox Code Playgroud)

然后我有第三个项目,我希望能够使用mopdules file_a和file_c.

在第三个项目中,我已经设置了这样的Python路径

PYTHONPATH=$PYTHONPATH:/some_disk/some_folder:/some_other_disk/some_folder
Run Code Online (Sandbox Code Playgroud)

然后,要导入文件,我在我的主模块中有这个:

import project.module.src.file_a
import project.module.src.file_c
Run Code Online (Sandbox Code Playgroud)

但是,这只能使我能够导入其中一个模块,并且在另一个模块上找不到模块错误.

我可以使用这个项目结构来完成这项工作吗?或者,Python总是只会查看其中一个"主要"模块,如果它不在那里,则会考虑未找到子模块?

编辑:该项目使用Python 2.6

Jon*_*han 5

__init__.py在每个src目录中创建一个包文件.它们应包含以下两行.请参阅此文档以获取详细信 此解决方案适用于Python 2.6,是规范的解决方案.

from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)
Run Code Online (Sandbox Code Playgroud)