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

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 EmbedModel
    return 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' >> ~/.bashrc

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

source ~/.bash_profile    # 使其立即生效

3、所有用户永久生效

echo 'export OPENAI_API_TYPE=$OPENAI_API_TYPE:AzureAI' >> /etc/profile

source /etc/profile    # 使其立即生效

 以上方案均失败,悲剧

真正解决

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


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

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

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

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

搞定,收工 


http://www.kler.cn/a/370886.html

相关文章:

  • 微软开源AI Agent AutoGen 详解
  • IEC103 转 ModbusTCP 网关
  • 电商项目-基于ElasticSearch实现商品搜索功能(三)
  • 如何使用PHP构建IoC容器,实现依赖注入!
  • [操作系统] 深入理解约翰·冯·诺伊曼体系
  • ESP8266固件烧录
  • gcc与mingw64版本介绍
  • Ubuntu22.04版本左右,扩充用户可使用内存
  • 安卓取消触摸屏幕的指针效果
  • 为什么廉价的谷歌SEO服务往往是陷阱?
  • 鸿蒙next之axios二次封装并携带cookie
  • Docker加载并运行别人的容器的同时挂在本地其他文件
  • 影刀RPA与Python作为爬虫的对比
  • 线程的同步
  • MFC实现以不规则PNG图片作为窗口背景
  • IMX6ULL之使用汇编操作GPIO
  • mac 上使用 cmake 构建包含 OpenMP 的项目
  • 网络请求自定义header导致跨域问题
  • 「二叉树进阶题解:构建、遍历与结构转化全解析」
  • 【网络安全】红队人员的GPO和OU指南
  • 端口号和ip地址一样吗?区别是什么
  • [Linux] linux 软硬链接与动静态库
  • 芯片上音频相关的验证
  • 2024前端JS面试题总汇
  • 基于yolov8的布匹缺陷检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】
  • Cisco Packet Tracer 8.0 路由器的基本配置和Telnet设置