当前位置:  开发笔记 > 编程语言 > 正文

Python导入结构

如何解决《Python导入结构》经验,为你挑选了0个好方法。

我希望我的项目有这个结构:

requirements.txt
README.md
.gitignore
project/
    __init__.py
    project.py
    core/
        __init__.py
        base.py
    engines/
        __init__.py
        engine1.py
        engine2.py
    utils/
        __init__.py
        refine_data.py
        whatever.py

该应用程序是从project/project.py.但是,在使用相对或绝对导入时,我经常会遇到导入错误.

两个引擎都需要从中导入project.core.base,utils也需要从中导入project.core.base,并且project.py(运行的主文件)需要能够从中导入engines.

绝对导入不起作用:

# engines/engine1.py
from project.core.base import MyBaseClass

这给出了错误:

ImportError: No module named project.core.base

但是,如果我尝试相对导入而不是

# engines/engine1.py
from ..core.base import MyBaseClass

我明白了:

ValueError: Attempted relative import beyond toplevel package

我已经看到Github上的其他项目结构相似,但这似乎会引起各种各样的问题.我如何让它工作?

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有