【问题标题】:Reading environment variables from more than one ".env" file in Python从 Python 中的多个“.env”文件中读取环境变量
【发布时间】:2022-01-18 11:40:57
【问题描述】:

我需要从两个不同的文件中获取环境变量,以便将 user+pw 保留在 git 存储库之外。我从另一个位置下载敏感用户+密码并将其添加到 .gitignore。

我正在使用

from os import getenv
from dotenv import load_dotenv
    
    ...
    load_dotenv()
    DB_HOST=getenv('DB_HOST') # from env file 1
    DB_NAME=getenv('DB_NAME') # from env file 1
    DB_USER=getenv('DB_USER') # from env file 2
    DB_PASS=getenv('DB_PASS') # from env file 2

我在 python 脚本的文件夹中有两个“.env”文件。

env_file.env 包含:

DB_HOST=xyz
DB_NAME=abc

env_file_in_gitignore.env 需要远离 git repo,但可以使用 sh 脚本下载:

DB_USER=me
DB_PASS=eao

如何避免错误:

TypeError: connect() argument 2 must be str, not None
connect() argument 2 must be str, not None

这是因为两个文件之一没有用于 .env 导入而引发的?

如何从两个不同的“.env”文件中获取环境变量,这两个文件都存储在工作目录中?

【问题讨论】:

    标签: python environment-variables


    【解决方案1】:

    您可以在load_dotenv函数中添加文件路径作为参数

    from dotenv import load_dotenv
    import os
    
    load_dotenv(<file 1 path>)
    load_dotenv(<file 2 path>)
    

    【讨论】:

      【解决方案2】:

      有一个方法加载 env 文件是 load_dotenv 你可以使用任意数量的 env 文件

      from dotenv import load_dotenv
      
      load_dotenv('path1')
      load_dotenv('path2)
      ...
      
      

      更多信息请阅读this

      【讨论】:

        猜你喜欢
        • 2020-09-02
        • 2021-03-12
        • 2017-03-06
        • 2021-11-29
        • 1970-01-01
        • 2020-08-27
        • 1970-01-01
        • 2018-12-15
        • 2021-05-16
        相关资源
        最近更新 更多