使用Python调用微软Azure翻译服务时报环境变量未设置错误如何解决
问题原因
你现在用的示例代码逻辑是强制从系统环境变量读取翻译服务的订阅密钥和端点,就算你手动在代码里填了对应值也不会生效,代码运行时会优先检查环境变量是否存在,不存在就直接抛出你遇到的异常。
解决方案
你可以根据使用场景选择以下任意一种方式解决:
方案1:修改代码跳过环境变量读取(仅适合本地临时测试)
直接把读取环境变量的代码替换成硬编码的密钥和端点即可,修改后的对应代码段如下:
# 把原来读取密钥的代码段删掉,换成下面这行 subscription_key = "替换为你Azure平台分配的实际订阅密钥" # 把原来读取端点的代码段删掉,换成下面这行 endpoint = "替换为你Azure平台分配的实际端点地址"
注意:不要把写了真实密钥的代码上传到公开代码仓库,避免密钥泄露产生额外费用。
方案2:正确配置系统环境变量(适合正式使用)
按照你使用的操作系统执行对应操作配置环境变量:
- Windows系统:
临时生效(仅当前命令行窗口有效):打开cmd依次执行以下命令,执行完成后在同一个窗口运行你的Python代码即可
永久生效:进入「系统属性-高级-环境变量」,新建两个分别名为set TRANSLATOR_TEXT_SUBSCRIPTION_KEY=你的实际订阅密钥 set TRANSLATOR_TEXT_ENDPOINT=你的实际端点地址TRANSLATOR_TEXT_SUBSCRIPTION_KEY和TRANSLATOR_TEXT_ENDPOINT的用户变量/系统变量,填入对应值后重启IDE或命令行工具即可生效。 - Linux/macOS系统:
临时生效(仅当前终端会话有效):打开终端依次执行以下命令,执行完成后在同一个终端运行代码即可
永久生效:把上面两行命令添加到export TRANSLATOR_TEXT_SUBSCRIPTION_KEY=你的实际订阅密钥 export TRANSLATOR_TEXT_ENDPOINT=你的实际端点地址~/.bashrc(bash用户)或~/.zshrc(zsh用户)文件末尾,执行source ~/.bashrc或source ~/.zshrc生效。
内容的提问来源于stack exchange,提问作者Marco
相关产品推荐
相关产品推荐

