我正在开发一个python库,并且在各自的应用程序中使用我的库的最终用户应该能够在其应用程序的根路径中提供配置文件,我的库将在运行时读取该文件。最终用户的应用程序可以是任何项目,如简单的Python项目,Django,Flask等。
在我的图书馆,我计划拥有以下代码。以下是将作为库导出的一段代码。例如, my-library
def read_config():
BASE_DIR = # Some code
with open(os.path.join(BASE_DIR, 'test.conf')) as f:
f.read()
我不确定如何通过我的图书馆获取最终用户应用程序的BASE_DIR值
我见过一些与使用settings.py获取根路径相关的帖子,它位于应用程序的根路径中。但在我的情况下,因为我不知道最终用户的项目结构,我想我不能使用它。
注意 - 最终用户将使用pip install my-library将我的库作为包安装
答案 0 :(得分:2)
我想你可能想重新考虑一下你的做法。
我认为不可能轻松地动态检索基目录,但是你可能不必这样做。不要依赖设置文件,而是让您的应用拥有自己的设置静态类,您可以检索所需的任何配置。如果最终用户希望自定义任何设置,则他们可以向其应用程序引入或扩展初始化步骤。
这与django的做法相同,django使用自己的设置类,最终用户可以覆盖并设置自己的值。