这与一个 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/