首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将环境变量应用于(#%%)?

如何将环境变量应用于(#%%)?
EN

Stack Overflow用户
提问于 2022-09-26 18:22:57
回答 2查看 160关注 0票数 0

在Python中,我经常使用#%%单元标记来测试使用环境变量的代码。我的解释器是Python虚拟环境。我经常在source $HOME/env/bin/activate中向环境启动脚本添加和删除环境变量,如下所示:

export VAR="value"

要使变量在VS代码交互中工作,我必须使用Developer: Reload Window,这意味着我丢失了Interactive上的所有数据。有没有一种不修改env/bin/activate脚本(需要重新加载)而将环境变量应用于Python实例的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-27 01:36:07

您可以阅读有关环境变量的文档

默认情况下,Python扩展在当前工作区文件夹中查找并加载名为.env的文件,然后应用这些定义。该文件由用户设置中的默认条目"python.envFile": "${workspaceFolder}/.env"标识。您可以随时更改python.envFile设置,以使用不同的定义文件。

示例:

dev.env

MYPROJECT_DBUSER=devadmin

test.py

代码语言:javascript
复制
import os
print(os.getenv('MYPROJECT_DBUSER'))

settings.json

代码语言:javascript
复制
"python.envFile": "${workspaceFolder}/dev.env"

当我使用交互式窗口运行test.py时,

票数 0
EN

Stack Overflow用户

发布于 2022-09-28 11:40:20

上面的解决方案可以工作,但是如果您更改了.env文件中的环境变量,则仍然需要重新加载窗口。

避免这种情况的一种方法是定义.env文件中的所有环境变量,但这可能会导致许多环境变量。

vs-代码建议设置两个.env文件,一个用于调试,一个用于dev.env,另一个用于prod prod.env。要添加这些内容,在工作区文件夹中您可能会看到一个文件夹.vscode,它可能有两个文件launch.jsonsettings.jsonlaunch.json用于调试,settings.json用于设置工作区设置。

launch.json实例

代码语言:javascript
复制
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "justMyCode": true,
            "python.envFile": "${workspaceFolder}/dev.env"
        }
    ]
}

settings.json

代码语言:javascript
复制
{
    "python.envFile": "${workspaceFolder}/prod.env"
}

要使launch.json生效,您必须在调试模式下启动会话。

同样,如果更改上述文件中的环境变量,仍然必须重新加载窗口或重新启动内核才能显示新的环境变量,从而导致交互窗口中的数据丢失。如果您希望保留数据,并且仍然希望更改环境变量,则可以通过os.environ[key]=var进行更改。如果您有许多变量要添加/更改,可以如下所示:

代码语言:javascript
复制
# store your environment variables in json (or config.ini) as key value pair
# following assumes you store your environment variable in json file

import os
import json

env_vars = json.load(open('env_file.json', 'r'))
for key, value in env_vars.items():
    os.environ[key]=value
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73858371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档