我正在构建一系列工具以及一个支持框架,我只是想要掌握Python中的包组织。
这是这样的:
main_package
- __init__.py
- foo.py
- constants.py
- lib_package
- __init__.py
- bar.py
我有一个问题,我有一个constants.py模块,我需要能够访问所有模块,无论是在主包或子包中。
我需要从foo和bar访问常量。我尝试过使用:
import main_package.constants
在我的lib包中的 init 内部,但它引起了一些其他的麻烦(有时我必须在不同的命名空间(main_package_dev)下运行整个包进行故障排除,这允许我保留两个网络上的版本,不会打扰现场项目。)
我也试过
from ..constants import *
但这不起作用,因为常量不是它自己的包。
我的问题是,维护一个包中使用的常量集合以及它的子包是什么是好的做法,如果它可能有它自己的包并且如何导入它?
答案 0 :(得分:0)
假设我有这个文件夹结构..
包1 | _ init .py | _ constants.py | _ package2 | _ init .py | _ constants.py
然后你可以添加
import os
import sys
sys.path.append(os.path.dirname(__file__))
在package1 / init .py
中然后你可以做
from package1 import constansts as con1
from package1.package2 import constansts as con2