如何在VSCode任务的options.env中引用本地环境变量?
实现VSCode任务引用本地环境变量的方法
可以实现需求,下面是两种靠谱的操作方法:
方法一:使用VSCode内置变量扩展
VSCode的任务配置支持通过${env:变量名}的语法直接读取本地环境变量,修改你的任务配置如下:
{ "label": "Uvicorn toto-scrapper", "type": "shell", "command": "cd ./app/toto-scrapper && python main.py #uvicorn main:app", "problemMatcher": [], "options": { "env": { "APP_TITLE": "toto-scrapper", "VERSION": "work-in-progress", "LOG_LEVEL": "DEBUG", "TOTO_URL": "XXX", "TOTO_USER": "${env:XXX_TOTO_LOGIN}", "TOTO_PASSWORD": "${env:XXX_TOTO_PWD}", "TOTO_REALM": "XXX", "TOTO_PLATFORM": "2" } } }
注意事项
- 其他开发者需要在本地提前设置好
XXX_TOTO_LOGIN和XXX_TOTO_PWD环境变量:- Windows:在「系统属性-高级-环境变量」里添加,或者用PowerShell临时设置:
$env:XXX_TOTO_LOGIN="你的账号" - macOS/Linux:在
~/.bashrc、~/.zshrc等配置文件中添加export XXX_TOTO_LOGIN="你的账号",执行source ~/.bashrc生效
- Windows:在「系统属性-高级-环境变量」里添加,或者用PowerShell临时设置:
方法二:通过Shell命令传递环境变量
如果偏好用Shell的变量替换逻辑,可以把环境变量的设置放到command字段里,同时删掉options.env中对应的配置:
{ "label": "Uvicorn toto-scrapper", "type": "shell", "command": "cd ./app/toto-scrapper && TOTO_USER=$XXX_TOTO_LOGIN TOTO_PASSWORD=$XXX_TOTO_PWD python main.py #uvicorn main:app", "problemMatcher": [], "options": { "env": { "APP_TITLE": "toto-scrapper", "VERSION": "work-in-progress", "LOG_LEVEL": "DEBUG", "TOTO_URL": "XXX", "TOTO_REALM": "XXX", "TOTO_PLATFORM": "2" } } }
这种方式依赖Shell的变量解析能力,确保你的任务使用的Shell(比如bash、zsh)支持这种前置环境变量的写法即可。
两种方法都能让Python脚本通过os.environ["TOTO_USER"]获取到本地环境变量的实际值,不会再拿到$XXX_TOTO_LOGIN这类字符串。
内容的提问来源于stack exchange,提问作者Itération 122442
相关产品推荐
相关产品推荐

