You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fedora 32下Python读取os环境变量报KeyError: 'ENV'问题求助

问题原因

  • 你在终端执行的export ENV=PRO只作用于当前终端会话,仅对该终端内启动的子进程生效:
    • 如果你是通过图形界面菜单/桌面快捷方式启动的PyCharm,没有继承当前终端的环境变量,因此PyCharm启动的Python进程也读不到这个变量
    • 即使你是从终端启动的PyCharm,如果后续关闭了终端、或者在新的终端窗口重新export变量,已经运行的PyCharm也不会同步更新环境变量
  • 没有把环境变量写入持久化配置,重启终端后变量就会自动失效
  • PyCharm的运行/调试配置默认不会继承系统全部环境变量,也可能是自定义配置覆盖了系统环境值

解决方法

方案1:临时生效(仅当前PyCharm运行配置有效)

  1. 点击PyCharm右上角运行按钮旁的下拉框,选择「Edit Configurations」
  2. 找到你运行的schedulespider.py对应的配置项
  3. 找到「Environment variables」选项,点击后面的文件夹图标
  4. 点击加号添加一行,名称填ENV,值填PRO,保存后重新运行即可

方案2:持久化环境变量(所有进程通用)

把变量写入用户shell配置文件,以Fedora默认的bash为例:

  1. 终端执行nano ~/.bashrc,在文件末尾添加一行:
export ENV=PRO
  1. 保存退出后执行source ~/.bashrc让配置立即生效
  2. 完全关闭PyCharm,从该终端执行命令启动PyCharm,后续启动的Python进程就能正常读到该变量
    如果你用的shell是zsh,把配置写到~/.zshrc里即可。

方案3:修改代码兼容无变量场景

不想改环境配置的话,可以调整读取变量的代码,避免抛出KeyError:

import os
# 优先读取环境变量,不存在时返回自定义默认值
current_env = os.environ.get("ENV", "DEV")

内容的提问来源于stack exchange,提问作者Dolphin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 04:51:03