python - 为集成终端设置环境变量
问题描述
我正在寻求帮助,以了解如何在 Visual Studio Code 中为集成终端设置环境变量。目前,我可以使用工作区文件夹中的.env文件来执行此操作,但我想更改此文件的文件名并创建另外一两个文件,例如 dev.env 和 prod.env。为我的工作区设置“ python.envFile ”并不能解决问题,据我所知,在 launch.json 中更改内容是为了调试。
所有这一切(这很重要)的总体目标是使用一组特定的环境变量运行 flask shell(flask web 框架的集成 shell,python),并能够通过交换文件来更改它们。我知道我可以通过在我的工作区设置中引入“ terminal.integrated.env.osx ”来设置这些,但我宁愿从文件中获取这些变量。
非常感谢您的时间和帮助。
升级版>>
我想一种方法是创建两个任务:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "FLASK SHELL DEV",
"type": "shell",
"command": "source ${workspaceFolder}/dev.env && ${config:python.pythonPath} -m flask shell",
"problemMatcher": []
},
{
"label": "FLASK SHELL PROD",
"type": "shell",
"command": "source ${workspaceFolder}/prod.env && ${config:python.pythonPath} -m flask shell",
"problemMatcher": []
}
]
}
但问题是存在的。有没有办法对集成终端做同样的事情?
解决方案
是的,您可以使用以下设置之一(取决于您的平台):
"terminal.integrated.env.linux": {},
"terminal.integrated.env.windows": {},
"terminal.integrated.env.osx": {
"PYTHONPATH": "${workspaceFolder}/src:${env:PYTHONPATH}"
},
但是,它们仅适用于集成终端,不适用于 vs code python 扩展可能产生的任何其他进程(测试、linting、调试器)。对于那些你需要使用.env 文件的人。
编辑:
值得注意的是,如果您从终端启动 VS Code,它应该从终端环境继承任何 env 变量(至少对于所有衍生的子进程,可能不适用于集成终端)。
推荐阅读
- android - 从联系人列表中选择联系人并为该联系人选择特定的电子邮件
- mysql - str_to_date() 不适用于正确的语法
- mysql - MySQL - 使用 STR_TO_DATE 进行 IF 查询
- c# - C# Web API 在 POST 上总是得到一个空值
- sql - SQL Server全文搜索,在多个字段上排名
- javascript - Typeahead 和 Bloodhound 动态更改本地值
- iis-7.5 - 在托管管道集成模式下使用 ApplicationPool 访问 IIS 7.5 的 HTTPModule 中的 BeginRequest/EndRequest 事件
- android - 无法将 Fabric 中的应用链接到现有 Firebase 项目
- mysql - 如何使用触发器来防止删除表并改为更新?
- vuejs2 - 为 Vuetify 组件全局设置道具(在我的例子中是`v-data-table`)