我有一个Python数据库接口包,它需要配置凭据才能工作。我想将它们放在一个配置文件中,而不是提交到接口存储库。所以我想到了以下结构:
my_project/
|- config/
| |- database.json
|- main.py (Contains 'from my_interface import Connection')
|- ...
my_interface/
|- src/
| |- module.py
| |- ...
|- ...
但是我怎样才能让
my_interface
在导入它的项目中找到config目录呢?
该界面可以作为系统安装,也可以作为用户安装,或者安装在
venv
中,并且可以编辑,因此尝试从内部module.py
(使用__file__
)向上导航是不可靠的。
我发现了很多类似的问题,但他们似乎没有解决如何从导入的包内部解决这个问题,而是依赖于
__file__
:
可以读取环境变量
CONFIG_PATH = os.getenv('CONFIG_PATH', '<standart-path-to-config>')
在 module.py