当前位置: 首页 > news >正文

VSCode 设置环境变量(WSL 2)

环境:openEuler、Windows 11、WSL 2、python 3.12.3

背景:使用vscode连接Windows 的Linux子系统,开发python项目,获取环境变量失败

时间:20241029

说明:使用os.environ获取不到变量,设置/etc/profile、/root/.bash_profile等均不能解决问题


问题说明

源码部分:

 注:此代码不为我写,我也不清楚为什么不使用get方法(python)

def EmbedModel():return AzureAIEmbs() if os.environ["OPENAI_API_TYPE"] == "AzureAI" else OpenAIEmbs()

运行到此部分代码时,出现以下错误

  File "/home/jack/xxxxxxxxxxxx/model.py", line 8, in EmbedModelreturn AzureAIEmbs() if os.environ["OPENAI_API_TYPE"] == "AzureAI" else OpenAIEmbs()~~~~~~~~~~^^^^^^^^^^^^^^^^^^^File "/opt/soft/python3/lib/python3.12/os.py", line 685, in __getitem__raise KeyError(key) from None
KeyError: 'OPENAI_API_TYPE'

 显然,获取不到该环境变量

尝试解决

由于是Linux子系统,常见的设置环境变量有三种

1、临时添加方案

export OPENAI_API_TYPE=AzureAI

2、用户永久有效(两种方式,未测试)

echo 'export OPENAI_API_TYPE=$OPENAI_API_TYPE:AzureAI' >> ~/.bashrcsource ~/.bashrc    # 使其立即生效
echo 'export OPENAI_API_TYPE=$OPENAI_API_TYPE:AzureAI' >> ~/.bash_profilesource ~/.bash_profile    # 使其立即生效

3、所有用户永久生效

echo 'export OPENAI_API_TYPE=$OPENAI_API_TYPE:AzureAI' >> /etc/profilesource /etc/profile    # 使其立即生效

 以上方案均失败,悲剧

真正解决

1. 打开VS Code,点击左下角的设置按钮(齿轮图标)或按下快捷键`Ctrl + ,`打开设置面板。


2. 在搜索框中输入 环境变量 ,点击用户(远程测试也可以,工作区未测试)- 功能 - 终端 - 在settings.json中编辑

由于我是Linux子系统,所以选择是Linux,按需求选择即可

3、在打开的文件中输入如下:

{"terminal.integrated.env.linux": {"OPENAI_API_TYPE":"AzureAI"}
}

搞定,收工 


http://www.mrgr.cn/news/61432.html

相关文章:

  • Spring 项目 基于 Tomcat容器进行部署
  • 虚假星标:GitHub上的“刷星”乱象与应对之道
  • 认识String类
  • NLP中常见的分词算法(BPE、WordPiece、Unigram、SentencePiece)
  • component-动态控制 div width 的值 根据传入的变量决定width的值 vue
  • Apache Sedona和Spark将geojson瓦片化例子
  • df -h 和df -i 的区别
  • AcWing 1451:单链表快速排序
  • crash工具使用
  • GPT避坑指南:如何辨别逆向、AZ、OpenAI官转
  • linux网络编程7——协程设计原理与汇编实现
  • 【网络】传输层协议TCP
  • Training language models to follow instructions with human feedback解读
  • 国密和国际密
  • 拥塞控制与TCP子问题(粘包问题,异常情况等)
  • 2024/10/29 英语每日一段
  • PyMol3.0 Educational Version激活教程(激活一次可用半年)
  • LCR 027. 回文链表 不利用额外空间实现快慢指针
  • OSError: no library called “cairo-2“ was found no library called “cairo“ was
  • 84674
  • msvcr100.dll丢失怎样修复,介绍6个简单靠谱的方法
  • 基于SSM+微信小程序的汽车维修管理系统(汽车5)
  • Qt编程技巧小知识点(6)根据 *IDN? 对程控仪器连接状态进行确认
  • leetcode hot100【LeetCode 543. 二叉树的直径】java实现
  • 离散数学实验五c语言(并查集处理,Kruskal算法求最小生成树)
  • binlog 介绍