如何在Python中使用dotenv在本地.env文件中设置环境变量?

问题描述 投票:0回答:3

我尝试了以下代码,但是当我打开 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'
python python-3.x environment-variables dotenv
3个回答
7
投票

你需要

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")

0
投票

https://github.com/theskumar/python-dotenv

您首先创建

.env
文件并写入各种变量。例如,
.env
可能看起来像:

password=SUPERSECRETPASSWORD
username=myusername

等等。然后您将使用

.env
函数加载您的
load_dotenv()

这是我在项目中的一些代码的示例:

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 我误读了这个问题。不过我会把它留在里面。


0
投票
from dotenv.main import set_key, load_dotenv, find_dotenv
import os

# Find the .env file path
dotenv_path = find_dotenv()
load_dotenv(dotenv_path)

# Set a new environment variable
# This will write to the .env file
set_key(dotenv_path, 'ORI', '123')

# Verify the change
print(f"ORI: {os.getenv('ORI')}")
© www.soinside.com 2019 - 2024. All rights reserved.