有什么办法可以在macOS中读取.env文件?

时间:2020-07-11 22:37:58

标签: macos environment-variables

我使用命令创建了.env文件,并创建了token_id="13423edq234"之类的变量,依此类推。我不想使用像dotenv这样的外部程序包来读取文件。我只想知道是否有任何方式可以加载我创建的.env文件,以便可以被Python读取。另外我也不想将env变量添加到zprofile中。

vim .env

在Python 3 shell中,

import os
os.environ['token_id']

它说,它没有定义。

4 个答案:

答案 0 :(得分:1)

您可以在运行它之前先获取它:

$ source .env
$ python
>>> import os
>>> os.environ['token_id']

答案 1 :(得分:1)

搜索解决方案的主要标准是不要使用自定义环境变量填充.profile或.bash等文件。我找到了一种对我来说很好的解决方案。

direnv是我遇到的一个软件包。它适用于基于Unix的OS。由于我将Mac与zsh shell配合使用,因此效果惊人。这是指向install direnv的链接。

按照安装说明进行操作后,创建一个.envrc文件并编写您的自定义env变量,对于我而言,在.envrc文件中就是这样。

Encoding.Unicode

最好的部分是它会自动加载和卸载变量,因此.profile保持干净。如果您有任何疑问,请告诉我。

答案 2 :(得分:0)

就像@Vaibhav一样,我将direnv与以下.envrc文件一起使用:

[ -f secrets ] && eval $(cat secrets | sed 's/^/export /') || echo "no secrets file"

然后您可以拥有一个secrets文件(如果愿意,可以命名为.env,并相应地更新.envrc文件):

MY_ENV_VAR1 = foo
MY_ENV_VAR2 = bar

sed的{​​{1}}部分使您可以选择在.envrc / export文件中包含secrets语句。

答案 3 :(得分:-1)

搜索“ dotenv python”将返回几个相关文档。例如以下python软件包:https://pypi.org/project/python-dotenv/。还有这个堆栈溢出问题:Can somebody explain the use of python-dotenv Module