VS Code调试时os.environ['SSL_CERT_FILE']指向不存在文件
SSL证书缺失调试异常问题求助
核心问题:终端、PyCharm或VS Code非调试模式运行Python脚本一切正常,但仅VS Code调试时会抛出SSL证书缺失异常。
经排查,问题根源是调试时环境变量os.environ['SSL_CERT_FILE']被设置为一个不存在的临时路径(例如C:\Users\MYUSER~1\AppData\Local\Temp\_MEI97082\certifi\cacert.pem),具体细节如下:
- 非调试模式或PyCharm运行时,该环境变量未被设置,minio包会自动使用
certifi.where()返回的正确证书路径 - VS Code调试时,脚本执行前
SSL_CERT_FILE就已被设置为无效路径 - 手动执行
del os.environ['SSL_CERT_FILE']后脚本可正常运行,但下次调试时该变量仍会被自动设置 - 环境配置:Python 3.11/3.9.7、MiniConda、Windows 10、VS Code 1.77.0
- 在launch.json中通过
"env": {"SSL_CERT_FILE": "foo"}可覆盖该变量,但移除配置后无效路径会再次出现 - 路径中的
_MEIXXXX2部分(数字段)每次调试都会随机变化 - 创建全新Python项目后问题依然存在
- 仅保留
import os代码,导入后即可看到SSL_CERT_FILE已被设置为无效路径
补充测试:移除launch.json后使用「Python: File」启动调试,执行import os; print(os.environ.get('SSL_CERT_FILE')),控制台输出仍为不存在的临时路径(如C:\Users\MYUSER~1\AppData\Local\Temp\_MEI223042\certifi\cacert.pem)。
目前不清楚调试时该环境变量被自动设置的原因和触发机制,手动删除并非长久之计,求可行的解决方法。
内容的提问来源于stack exchange,提问作者Roland Deschain
相关产品推荐
相关产品推荐

