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)

python 复制代码
def EmbedModel():
  return AzureAIEmbs() if os.environ["OPENAI_API_TYPE"] == "AzureAI" else OpenAIEmbs()

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

bash 复制代码
  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、临时添加方案

bash 复制代码
export OPENAI_API_TYPE=AzureAI

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

bash 复制代码
echo 'export OPENAI_API_TYPE=$OPENAI_API_TYPE:AzureAI' >> ~/.bashrc

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

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

3、所有用户永久生效

bash 复制代码
echo 'export OPENAI_API_TYPE=$OPENAI_API_TYPE:AzureAI' >> /etc/profile

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

以上方案均失败,悲剧

真正解决

  1. 打开VS Code,点击左下角的设置按钮(齿轮图标)或按下快捷键`Ctrl + ,`打开设置面板。
  1. 在搜索框中输入 环境变量 ,点击用户(远程测试也可以,工作区未测试)- 功能 - 终端 - 在settings.json中编辑

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

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

bash 复制代码
{
    "terminal.integrated.env.linux": {
        "OPENAI_API_TYPE":"AzureAI"
    }
}

搞定,收工

相关推荐
NKelly14 小时前
neovim等模态编辑器最优雅的输入法解决方案
运维·编辑器·vim·yaml
浩浩测试一下14 小时前
C库OpenSSL安装与VisualStudio配置
ide·visual studio
hoo34316 小时前
【Typora】!Markdown 编辑器详细安装教程,高效上手
linux·编辑器
应茶茶16 小时前
VsCode通过SSH远程连接云服务器遇到主机密钥变更问题
服务器·vscode·ssh
猿小猴子17 小时前
主流 AI IDE 之一的 Meituan CatPaw IDE 介绍
ide·meituan catpaw
蜡笔大新79818 小时前
IDEA中的异常
java·ide·intellij-idea
小龙报20 小时前
《VScode搭建教程(附安装包)--- 开启你的编程之旅》
c语言·c++·ide·vscode·单片机·物联网·编辑器
木易 士心20 小时前
Android Studio + Gemini 移动开发领域的一次范式转移
android·ide·android studio
洛克大航海21 小时前
PyCharm 软件关联 GitHub 账户
ide·pycharm·github
无糖冰可乐211 天前
IDEA多java版本切换
java·ide·intellij-idea