提问人:Bharel 提问时间:10/22/2023 最后编辑:Bharel 更新时间:10/22/2023 访问量:49
修改 .env 时,VSCode 不会更新环境变量
VSCode does not update environment variables upon .env modification
问:
我在 Python 项目中使用 .env,带有 python-dotenv,但似乎 VSCode 会自动从 .env 加载环境变量。
不幸的是,当我修改 .env 文件时,VSCode 似乎没有更新环境变量,导致 Python 程序在旧环境变量上运行。
重新启动 VSCode /打开新的集成终端似乎无济于事。看起来好像它在某个地方缓存了 .env,然后从缓存中重新加载它,而不会在更新原始文件时删除缓存。
/usr/bin/env 和 .env 文件的输出:
帮助输出: 关于:
Version: 1.84.0-insider (Universal)
Commit: f1c3b1dcf85e3b6ddb24b7dce0e4b122e8ce6233
Date: 2023-10-17T05:38:23.658Z
Electron: 25.8.4
ElectronBuildId: 24154031
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: 11.4.183.29-electron.0
OS: Darwin x64 22.6.0
Python扩展版本。v2023.19.12931008
答:
0赞
Sean K.
10/22/2023
#1
我不确定您的 Python 代码是如何获取环境变量的,但这就是我通常的做法。
.env 域名
BROADCAST_MAC=ff:ff:ff:ff:ff:ff
DEFAULT_MAC=11:22:33:44:55:66
config.py
from dotenv import load_dotenv
from pathlib import Path
import os
# path to your .env file
env_path = Path(".") / ".env"
load_dotenv(dotenv_path=env_path)
class Config: # Save your var in a class
BROADCAST_MAC = os.getenv("BROADCAST_MAC")
DEFAULT_MAC = os.getenv("DEFAULT_MAC")
main.py
import config
BROADCAST_MAC = config.Config.BROADCAST_MAC
DEFAULT_MAC = config.Config.DEFAULT_MAC
我个人喜欢单独的配置文件(更容易调试)。 让我知道这是否有帮助,如果没有,这可能会有所帮助
评论
0赞
Bharel
10/22/2023
感谢您尝试提供帮助。不幸的是,即使在 python 运行之前,环境也加载了 vscode。它与Python代码无关:-)
评论
Help: About
Help > Report Issue