【发布时间】:2021-08-13 05:28:40
【问题描述】:
我没有 .bash_profile 文件,所以我创建了一个,其中唯一的一行是:
YOUTUBE_API=someRandomString
在我的 .zshrc 文件中,第一行是这样的:
source ~/.bash_profile
我可以从命令行运行这个:
echo $YOUTUBE_API
这给了我正确的输出(我的 API 密钥)。
但是当我尝试在 Python 中执行此操作时,它返回 None:
import os
print(os.environ.get('YOUTUBE_API'))
我正在运行 python 版本 3.9.4。知道为什么,以及如何解决吗?
谢谢
【问题讨论】:
-
我不知道如何进行这项工作,但我的建议是不要依赖程序中的环境变量,因为它会产生不可见的依赖关系。我的建议是从命令行获取值,或对其进行硬编码,或将其放入特定于程序的初始化文件中,或类似的东西。
-
我强烈反对。环境变量非常适合因系统而异的配置选项。它们是一种成熟的配置技术。
-
@calvinhus :
YOUTUBE_API不是环境变量。echo不会透露这一点。您将不得不使用printenv YOUTUBE_API之类的东西,或者-如果printenv不可用-,env|grep -xF YOUTUBE_API。
标签: python bash macos environment-variables zshrc