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

Conda环境变量与os.environ不一致,含$符号的变量值被截断

Conda环境变量与os.environ不一致,含$符号的变量值被截断

我最近在给Conda环境设置环境变量SOME_VAR时碰到了一个奇怪的问题——这个变量的值是以$开头的。最开始我没给变量值加单引号,在PowerShell里可能因为$的特殊含义导致了静默错误。后来我以为用正确的方式重新赋值就能解决,就在Anaconda PowerShell里执行了这两条命令:

conda env config vars set SOME_VAR='$ValueOfTheVariable!'
conda env config vars list -n my_env

Conda返回的结果是正常的,能完整显示SOME_VAR=$ValueOfTheVariable!。但当我在加载了这个环境的Spyder里,通过os.environ获取这个变量时,却只能看到末尾的感叹号:

In [4]: os.environ.get('SOME_VAR')
Out[4]: '!'

简单来说,Anaconda里能看到完整的变量值,但Spyder和os模块只能读到!,其他环境变量都是正常一致的。

我已经尝试了不少方法,但都没能解决问题:

  • 查阅Conda官方文档
  • 在PowerShell中停用并重新加载环境
  • 重启Spyder
  • 在PowerShell里删除变量后重新赋值
  • 在os中删除变量,然后重启Spyder(但截断后的变量值还是会重新出现)
  • 在PowerShell里先取消变量设置,再用双引号加反撇号转义$来重新设置

更奇怪的是,就算我在PowerShell里取消了这个变量的设置,os.environ里依然能读到它,这让我怀疑程序是从别的地方读取的变量值,但我明明只在Conda里设置过这个变量啊。

备注:内容来源于stack exchange,提问作者Eli Johnson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 03:18:07