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

使用FastAPI连接PostgreSQL时Anaconda环境变量编码异常咨询

Anaconda环境变量中%40被替换的解决办法
  • 问题本质:Anaconda的conda env config vars set命令会把单个%当作变量替换的前缀,输入%40时,它会尝试查找名为40的系统/conda变量,找不到就会出现异常替换(比如你遇到的set0),这是shell变量解析和conda自身处理共同导致的。

  • 解决方法1:转义%符号
    使用conda命令设置环境变量时,把单个%改成两个%%来转义:

    conda env config vars set DB_URL="postgresql://user:pass%%40your-host:5432/your-db"
    

    设置完成后重启conda环境,环境变量里的%%40会被正确解析为%40。

  • 解决方法2:直接使用@符号(更简单)
    如果数据库密码里没有@符号,完全不需要对URL里的@进行编码,直接写原始字符即可,用引号包裹避免shell解析问题:

    conda env config vars set DB_URL="postgresql://user:pass@your-host:5432/your-db"
    

    只有当密码本身包含@时,才需要用%40编码,这时候再用方法1的转义方式。

  • 补充说明
    Anaconda的环境变量处理逻辑基本继承自你使用的终端shell:

    • Windows CMD中,%是变量标记,转义用%%;
    • Linux/macOS的bash/zsh中,用单引号包裹变量值就能避免%被解析,或者用\%转义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:50:33