如何在 python 中使用 dotenv 在本地 .env 文件中设置环境变量?
How to set environment variables in a local .env file using dotenv in python?
我尝试了以下代码,但是当我打开我的 env 文件时它仍然是空的。
import os
from os.path import join, dirname
from dotenv import load_dotenv
dotenv_path = join(dirname(__file__), '.env')
load_dotenv(dotenv_path)
os.environ['ORI'] = '123'
https://github.com/theskumar/python-dotenv
您首先创建 .env
文件并写入各种变量。例如 .env
可能看起来像:
password=SUPERSECRETPASSWORD
username=myusername
等等。然后,您将使用 load_dotenv()
函数加载 .env
。
这是我在项目中的一些代码的示例:
import os
import psycopg2 as pg2
from dotenv import load_dotenv
# -------------------------------
# Connection variables
# -------------------------------
dotenv_path = os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..', '.env')) #travels up a level to find the .env
load_dotenv(dotenv_path)
# -------------------------------
# Connection to database
# -------------------------------
# Server connection
db_url = os.environ.get("DATABASE_URL")
CONN = pg2.connect(db_url, sslmode="require")
请确保将 .env
添加到 .gitignore
文件中!!!!
编辑:NVM 我误解了这个问题。不过我会把它留在里面。
为此你需要 dotenv.set_key
,像这样:
import dotenv
dotenv_path = "my-custom-dotenv"
# dotenv.set_key will create a dotenv file
# with the specified path if non existing, then add the "ORI" variable
dotenv.set_key(dotenv_path, "ORI", "123")
# add the IRO variable
dotenv.set_key(dotenv_path, "IRO", "321")
# change the ORI variable
dotenv.set_key(dotenv_path, "ORI", "456")
# remove the IRO variable
dotenv.unset_key(dotenv_path, "IRO")
我尝试了以下代码,但是当我打开我的 env 文件时它仍然是空的。
import os
from os.path import join, dirname
from dotenv import load_dotenv
dotenv_path = join(dirname(__file__), '.env')
load_dotenv(dotenv_path)
os.environ['ORI'] = '123'
https://github.com/theskumar/python-dotenv
您首先创建 .env
文件并写入各种变量。例如 .env
可能看起来像:
password=SUPERSECRETPASSWORD
username=myusername
等等。然后,您将使用 load_dotenv()
函数加载 .env
。
这是我在项目中的一些代码的示例:
import os
import psycopg2 as pg2
from dotenv import load_dotenv
# -------------------------------
# Connection variables
# -------------------------------
dotenv_path = os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..', '.env')) #travels up a level to find the .env
load_dotenv(dotenv_path)
# -------------------------------
# Connection to database
# -------------------------------
# Server connection
db_url = os.environ.get("DATABASE_URL")
CONN = pg2.connect(db_url, sslmode="require")
请确保将 .env
添加到 .gitignore
文件中!!!!
编辑:NVM 我误解了这个问题。不过我会把它留在里面。
为此你需要 dotenv.set_key
,像这样:
import dotenv
dotenv_path = "my-custom-dotenv"
# dotenv.set_key will create a dotenv file
# with the specified path if non existing, then add the "ORI" variable
dotenv.set_key(dotenv_path, "ORI", "123")
# add the IRO variable
dotenv.set_key(dotenv_path, "IRO", "321")
# change the ORI variable
dotenv.set_key(dotenv_path, "ORI", "456")
# remove the IRO variable
dotenv.unset_key(dotenv_path, "IRO")