首页 > 解决方案 > 无法在以“==”结尾的 conda 中保存环境变量

问题描述

我正在访问 Coinbase PRO API,它需要三样东西,API 公钥、API 密码和 API 密码。我能够成功保存密钥和密码,因为它们只是带有字母字符的字符串。但是,API 机密是这样的:“uoahdsgoaogdso==” 似乎末尾的等号阻止了系统识别变量。

在 python 中,我使用以下命令打印每个环境变量(用上面的每个参数替换键): print(os.getenv('key'))

当我运行上述程序时,我可以成功打印公钥和密码,但是当我尝试打印 API 密码时,它给了我一个空字符串。关于为什么它不会保存包含 == 的字符串的任何想法

这是问题的直观表示

另一个注意事项,我使用的是 Ubuntu,Windows 的 linux 子系统

标签: pythonenvironment-variablesconda

解决方案


==就环境变量而言,字符串没有什么特别之处。ASCII 等号字符与任何其他可打印字符没有什么不同;例如,ASCII 字母u。通过一个简单的实验,您可以看到这是正确的:

$ bash
==== Hello from .bashrc ====
bash-5.0$ export KEY=abc=
bash-5.0$ env | grep KEY
KEY=abc=
bash-5.0$ bash -c 'echo "|$KEY|"'
|abc=|
bash-5.0$

然而,尾随等号字符是特殊的,在特定的上下文中,例如可打印的 base64 编码的 RSA 密钥,它们用于填充以确保有效的 base64 字符串。例如,请参阅为什么 base64 编码的字符串末尾有 = 符号

另外,“conda”是指基于 Python 的数值分析的Anaconda平台吗?如果是的话,我对你的问题感到困惑。使用 Anaconda 运行 Python 程序绝对不会影响环境变量的行为。


推荐阅读