python - 重构 python 模块配置以避免相对导入

标签 python configuration module

这与一个 previous question 有关我的。

我了解如何存储和读取配置文件。有诸如ConfigParser之类的选择和 ConfigObj .

考虑这个假设的“鸡蛋”模块的结构:

eggs/
  common/
    __init__.py
    config.py
  foo/
    __init__.py
    a.py

'eggs.foo.a' 需要一些配置信息。我目前正在做的是,在“a”中,

import eggs.common.config
.这样做的一个问题是,如果将“a”移动到模块树中的更深层次,相关导入就会中断。绝对导入不需要,但它们要求您的模块位于您的 PYTHONPATH 上。

上述绝对导入的可能替代方法是相对导入。因此,在 'a' 中,

import .common.config

在不讨论相对进口与绝对进口的优点的情况下,我想知道其他可能的解决方案吗?

edit- 删除了 VCS 上下文

最佳答案

“导入...要求您的模块在您的 PYTHONPATH 上”

没错。

那么,设置 PYTHONPATH 有什么问题?

关于python - 重构 python 模块配置以避免相对导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/345746/

相关文章:

python - 如何从 Android 应用程序与 Android 脚本环境进行交互?

python - 如何保存 Keras 的训练历史以进行交叉验证(循环)?

python - 读取 python 程序的配置值的最佳方法是什么?引用另一个文件中定义的 Enum 类是否常见?

configuration - LDAP 联合用户 - 自动将电子邮件验证设置为 true

javascript - Prestashop - 如何 catch 购物车更新

python - 使用 XGBoost 和 hyperopt 进行交叉验证和参数调整

python - 如何直接得到两两距离的压缩形式?

java - 您如何在不同的暂存环境中维护 java webapps?

module - Lua 意大利面条模块

c - 制作C库: pointer-style initialization or hidden state variables?