在VSCode中编写Python程序时,由于有些地方要使用环境变量,但是发现设置的环境变量有时不起作用,花了点时间研究了一下,过程不表,直接说结论。
首先,环境变量的设置,Python扩展中有三种方式:
直接设置系统环境变量,或在使用命令行启动VSCode时临时先设置环境变量。 这种方式设置的环境变量在所有的运行方式下起效,但由于多个工程所用的环境变量不同,每次设置太麻烦,使用bash脚本或批处理我也觉得不爽,所以没有采用。
通过 terminal.integrated.env.windows / terminal.integrated.env.linux / terminal.integrated.env.osx 选项配置。 选项的格式是字典,键和值都必须是字符串,具体格式:
{
"terminal.integrated.env.windows": {
"ENVIRON_VARIABLE": "The Variable value",
"VAR2": "111",
// 下面没加引号的是错的,不会生效
//"VAR3": 111,
},
}
通过配置 python.envFile 选项。 python.envFile 是一个绝对路径,指向一个文件,默认为工程目录下的.env文件,用于定义需要的环境变量,基本格式如下:
# 注释
PYTHONPATH = D:\workspace\safe110\webapps
PYTEST = 111
其次,VSCode的Python扩展有四种程序运行方式,针对不同的运行方式,起作用的环境变量分别如下:
Debug 以上三种方式设置的环境变量都会生效,VSCode会按照上面列出的顺序依次读取环境变量(即重名变量后面的生效)。
pylint 等后台任务 (包括运行测试和调试测试) 只有第1种和第3种方式设置的环境变量生效,读取顺序同上。
右键文件-->在终端运行 或 选中代码,右键-->在Python终端运行 只有第1种和第2种方式设置的环境变量生效,读取顺序同上。
运行测试和调试测试(只分析了pytest) 同2。