管理打包在python模块中的配置文件

管理打包在python模块中的配置文件,python,package,configuration-files,Python,Package,Configuration Files,管理python模块中嵌入的配置文件的正确方法是什么 我有一个python模块(例如my_py_logger),用于执行特定任务(即集中式日志记录)。它将被团队开发的其他python应用程序使用。一旦它被导入到python应用程序(例如my_py_app_a)中,开发人员就可以在日志模块中调用init作为日志模块的方法。此方法读取配置文件。该配置文件位于my_py_logger包中 当我从另一个包调用此方法时,python无法找到配置文件,因为根文件夹已从my_py_logger的根源文件夹更改

管理python模块中嵌入的配置文件的正确方法是什么

我有一个python模块(例如my_py_logger),用于执行特定任务(即集中式日志记录)。它将被团队开发的其他python应用程序使用。一旦它被导入到python应用程序(例如my_py_app_a)中,开发人员就可以在日志模块中调用init作为日志模块的方法。此方法读取配置文件。该配置文件位于my_py_logger包中

当我从另一个包调用此方法时,python无法找到配置文件,因为根文件夹已从my_py_logger的根源文件夹更改为my_py_app_a的根源文件夹

my_py_记录器
__初始值
配置/
default.conf
init_logger.py

my_py_应用程序a
__初始值
app.py

我尝试在my_py_logger模块中使用
importlib.import_模块(\uuuu name\uuuu)
,以获取my_py_logger中主文件的绝对路径,因此我可以从该字符串/路径中提取父目录并连接“./config/default.conf”,但这看起来是一个糟糕的解决方案。我相信有更好的方法来处理这种情况。也许将其作为配置文件不是正确的解决方案,但我确信我不是第一个在python中尝试这种方法的人


正确的解决方案是什么?

在logger init创建
~/.my_py_logger/default.conf
(如果不存在)怎么样?这将允许每个用户都有一个默认的配置文件。这不符合我的要求,因为我需要将default.conf与模块分开发送。如果它丢失了,我需要在模块中打包一个default.conf,这就引出了最初的问题,当模块a导入模块B时,您如何引用模块a中打包的.conf文件?好吧,您不需要将其与模块分开装运,只需从
init\u logger.py
中复制它,使用类似于
pathlib.Path(\uuu file\uuuu).parent.joinpath('config','default.conf')
。无论如何,从外部模块存储和修改模块结构内部的配置文件似乎不是一个好主意。存储一个配置文件如何做到这一点?python世界中的规范是什么?没有规范,实际上有一些有效的方法(例如quick)。您还可以使用
~/.loggerrc
文件,类似于
.bashrc
.condarc
方法。