gpt4 book ai didi

Python:如何从同名包中导入子模块?

转载 作者:行者123 更新时间:2023-11-30 23:34:35 25 4
gpt4 key购买 nike

我的项目设置如下所示:

基础项目

/some_disk/some_folder/
|-- project/
| |-- package/
| | |-- src/
| | | |-- file_a.py
| | | |-- file_b.py

扩展项目

/some_other_disk/some_folder/
|-- project/
| |-- package/
| | |-- src/
| | | |-- file_c.py
| | | |-- file_d.py

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

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

PYTHONPATH=$PYTHONPATH:/some_disk/some_folder:/some_other_disk/some_folder

然后,要导入文件,我的主模块中有以下内容:

import project.module.src.file_a
import project.module.src.file_c

但是,这只能使我能够导入其中一个模块,而在另一个模块上则出现未找到模块错误。

我可以使用这个项目结构来完成这项工作吗?或者Python是否总是只查看“主”模块之一,如果子模块不在其中,则认为子模块未找到?

编辑:该项目使用 Python 2.6

最佳答案

在每个 src 目录中创建一个包文件 __init__.py。它们应包含以下两行。请参阅this documentation了解详情。该解决方案适用于 Python 2.6,并且是规范的解决方案。

from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)

关于Python:如何从同名包中导入子模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17994642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com