在VSCode中编写Python程序时,由于有些地方要使用环境变量,但是发现设置的环境变量有时不起作用,花了点时间研究了一下,过程不表,直接说结论。

首先,环境变量的设置,Python扩展中有三种方式:

  1. 直接设置系统环境变量,或在使用命令行启动VSCode时临时先设置环境变量。
    这种方式设置的环境变量在所有的运行方式下起效,但由于多个工程所用的环境变量不同,每次设置太麻烦,使用bash脚本或批处理我也觉得不爽,所以没有采用。
  2. 通过 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,
    },
    }
  3. 通过配置 python.envFile 选项。
    python.envFile 是一个绝对路径,指向一个文件,默认为工程目录下的.env文件,用于定义需要的环境变量,基本格式如下:
    # 注释
    PYTHONPATH = D:\workspace\safe110\webapps
    PYTEST = 111

其次,VSCode的Python扩展有四种程序运行方式,针对不同的运行方式,起作用的环境变量分别如下:

  1. Debug
    以上三种方式设置的环境变量都会生效,VSCode会按照上面列出的顺序依次读取环境变量(即重名变量后面的生效)。
  2. pylint 等后台任务 (包括运行测试和调试测试)
    只有第1种和第3种方式设置的环境变量生效,读取顺序同上。
  3. 右键文件-->在终端运行 或 选中代码,右键-->在Python终端运行
    只有第1种和第2种方式设置的环境变量生效,读取顺序同上。
  4. 运行测试和调试测试(只分析了pytest)
    同2。

最新文章

  1. String.Join的巧用
  2. java关于StringBuffer和StringBuilder写入文件的效率问题
  3. IBM开发者 JSON 教程
  4. SOLID architecture principles using simple C# examples
  5. Yii 引入 js和css
  6. openGL点精灵PointSprite具体解释: 纹理映射,旋转,缩放,移动
  7. CentOS 6.5玩转自制Linux、远程登录及Nginx安装测试
  8. 【审核】检查iOS项目中是否使用了IDFA
  9. centos7之zabbix3.2搭建
  10. node.js 远程调试debug产线环境代码
  11. TCP/UDP区别
  12. HTML 5 canvas globalCompositeOperation 属性
  13. 关于org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Incorrect string value: '\xE5\x91\xBC\xE5\x92\x8C...' for column 'visit_addr' at row 1的问题
  14. suricata 配置文件threshold
  15. Linter pylint is not installed
  16. Linux之文档与目录结构 (/ 用法, 相对路径,绝对路径)
  17. LeetCode题解之Linked List Cycle
  18. 【Android归纳】开发中应该注意的事项
  19. Linux里提示cannot find -lsocket解决办法
  20. $digest already in progress 解决办法

热门文章

  1. 学习HTML5 canvas遇到的问题
  2. 巡风源码阅读与分析---nascan.py
  3. Python内置函数(15)——dict
  4. AspNetCore 使用NLog日志,NLog是基于.NET平台开的类库!(又一神器)
  5. 华为oj之字符个数统计
  6. ELK-Elasticsearch安装
  7. logback配置信息
  8. 【转载】ASP.NET Core Web 支付功能接入 微信-扫码支付篇
  9. CSS float的相关图文详解(二)
  10. k8s重要概念及部署k8s集群(一)--技术流ken