我正在寻找访问子包根目录的最佳方法,以便检索常见的配置文件(在我的例子中是JSON文件)。
例如,目录结构可能如下所示:
| README
| setup.py
| proj_name
| __init__.py
| pack_01
| __init__.py
| file_01.py
| file_02.py
| pack_02
| __init__.py
| file_03.py
| file_04.py
| conf
| conf_01.json
| conf_02.json
| conf_03.json
在此示例中,程序包配置文件位于proj_name/conf
目录中。
使用file_01
等命令导入说import proj_name.pack_01.file_01
时,属性__file__
将指向proj_name/pack_01/file_01.py
,并且需要一行root_dir=dirname(dirname(__file__))
;但是,这意味着在编写子包时需要了解目录结构。
有没有办法使用__root_package__
等类似的变量访问根包(在本例中为proj_name)及其目录?在python中实现这个目的最简单的方法是什么?当使用setup.py实用程序构建一个egg时,该方法是否仍然有效?
提前谢谢!