繁体   English   中英

从顶级包的相对导入

[英]Relative import from top-level package

我有这个结构

proj
 utils.py
    |- sub1
        file1.py
    |- sub2
        file2.py
 ...

utils.py是包含大量有用功能的模块。 我希望它们可以在子目录的每个filesX.py中访问,例如通过utils.func1() ...

为此我要进口utilsfile1.py通过from .. import utils ,但我得到一个

ValueError: attempted relative import beyond top-level package

错误。

有没有一种干净的方法可以执行此操作,而无需添加绝对路径并且无需编辑PYTHONPATH?

尝试这个:

from proj import utils

我的意见是,如果您不想编辑eny环境变量,这就是解决此问题的方法。

使用绝对导入意味着当您尝试导入另一个模块时,模块在项目中的哪个位置都没有关系。 Python将始终查找要从包根目录导入的模块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM