【问题标题】:Error in locating and reading specific .env file, in django project在 django 项目中定位和读取特定 .env 文件时出错
【发布时间】:2019-07-10 11:57:38
【问题描述】:

在我的项目中,我只是添加了新的安全方法,将 .env 从项目中分离到另一个文件夹中,并采用了新流程。为此,我遵循了我在我的应用程序中使用的 python-dotenv lib 文档

但即使按照建议我也找不到所有参数,因为我最终遇到以下错误:

django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty

我的设置:

from dotenv import load_dotenv
env_path = Path('/home/user/configs') / '.env'
load_dotenv(dotenv_path=str(env_path))

如何从具体路径解决这个问题?

注意:我在我的项目中使用的是python 3.4.5和django 1.9.4,但我不认为问题是项目采用的旧版本引起的。

另一个重要的细节是 .env 文件是正确的,因为当我在找到文件 settings 的同一文件夹中使用它时.py 没有问题!

【问题讨论】:

    标签: django python-3.x environment-variables


    【解决方案1】:

    我也在使用这种方法,从过去的几个月开始,我一直在关注一位非常优秀的开发人员,他还写了关于 python 依赖项“python-decouple”的文章,您将在link 获得详细信息 我认为这肯定会解决您的问题。

    Python 解耦 github 仓库:here

    【讨论】:

    • 非常感谢您的建议,我正在测试一个新分支。你能解释一下我如何在另一个文件夹中找到 .env 吗?
    • 对不起,我不明白你的意思,你想在这里实现什么。
    • 对不起,如果不清楚,我想问一下 python-decouple lib 找到 .env 文件的方法是什么,例如在 linux opt 文件夹中?跨度>
    • 您可以在项目目录中创建一个 .env 文件,其中存在 manage.py 文件,并通过我上面分享的示例简单地使用它
    • 主要目的恰恰不是把它留在项目文件夹中,而是放在另一个位置。因此,您不必每次升级项目时都插入文件。
    【解决方案2】:

    您可以将包含 .env 的文件夹添加到路径中。我是这样做的:

    load_dotenv(os.path.join(BASE_DIR, "project", ".env"))
    

    回复了here

    【讨论】:

      猜你喜欢
      • 2019-12-17
      • 1970-01-01
      • 2017-09-30
      • 1970-01-01
      • 2022-11-27
      • 1970-01-01
      • 1970-01-01
      • 2015-09-10
      • 2012-06-13
      相关资源
      最近更新 更多