pycharm中环境变量优先级为运行配置>conda vars>系统变量;运行配置仅影响当前脚本,terminal和console需单独配置或统一用conda管理。

Run/Debug Configurations 里的 Environment variables 字段
PyCharm 运行 Python 脚本时,环境变量最常用、最直接的配置位置就是运行配置里。它优先级最高,且只影响当前配置,不污染系统或 Conda 环境。
操作路径:Run > Edit Configurations… → 左侧选中你的 Python 配置 → 右侧找到 Environment variables 字段 → 点击右侧 … 按钮打开编辑器。
- 格式必须是
KEY1=value1;KEY2=value2(Windows/Linux/macOS 均用分号分隔,不是换行或逗号) - 常见错误:粘贴时带多余空格或换行符,导致
os.environ.get("KEY")返回None - 若值含空格或特殊字符(如
PATH=/usr/bin:/bin),无需引号;但若值本身含分号(极少见),需改用其他方式(如脚本预设) - 该设置对调试(Debug)同样生效,无需额外配置
Conda 环境变量:conda env config vars set
如果你用的是 Conda 解释器,且希望变量对所有在该环境下启动的进程(包括 PyCharm 终端、外部 shell)生效,应通过 Conda 命令管理,而不是仅靠运行配置。
在终端执行:
conda activate myenv<br>conda env config vars set API_KEY=abc123 MY_PATH=/data
然后必须重新激活环境(conda deactivate && conda activate myenv)才能让变量加载进当前 shell。
- PyCharm 的 Terminal 默认继承系统 shell 环境,所以重启 PyCharm 或重开 Terminal 才能识别新变量
- 变量实际写入
envs/myenv/conda-meta/state,不是脚本,更可靠 - 与运行配置冲突时,运行配置中的同名变量会覆盖 Conda 设置(优先级:运行配置 > Conda vars > 系统环境变量)
PyCharm 终端和 Python Console 的环境变量来源
PyCharm 的内置 Terminal 和 Python Console 不读取 Run/Debug 配置里的 Environment variables,它们依赖系统 shell 启动时的环境,或你手动在 PyCharm 设置中指定。
- Terminal:默认使用系统 shell(bash/zsh/cmd),所以它看到的是你操作系统级别的环境变量 + Conda 激活后的变量
- Python Console:路径为
File > Settings > Tools > Python Console→Environment variables字段,此处单独配置,不影响运行/调试 - 常见问题:
os.environ在 Console 里拿不到你在 Run 配置里设的变量——这是设计如此,不是 bug - 如果想让 Console 也用某套变量,建议统一用 Conda
env config vars设置,再确保 Terminal 已激活对应环境
为什么 os.environ.get("XXX") 返回 None?检查这三处
环境变量“设了却读不到”,基本逃不出这三个位置的遗漏或冲突:
- 运行配置里拼错了键名(比如写了
API_KEY却代码里查api_key,注意大小写) - Conda 环境没激活,或激活后没重启 PyCharm Terminal(
echo $API_KEY在 Terminal 里为空就说明没生效) - 代码里提前调用了
os.environ.get,但变量是在后续 import 或函数里才被设置(比如误以为os.environ["XXX"] = "val"能全局生效——它只对当前 Python 进程有效,且不能替代配置)
真正容易被忽略的是:PyCharm 的运行配置和 Terminal 是两套环境,同一变量得在两个地方分别配,或者统一走 Conda 管理。否则你会反复怀疑是不是代码写错了。











