有没有办法读取macOS中的.env文件?

有没有办法读取macOS中的.env文件?,macos,environment-variables,Macos,Environment Variables,我使用命令创建了.env文件,并创建了变量,如token\u id=“13423edq234”等。我不想使用像dotenv这样的外部包来读取文件。我只是想知道是否有办法加载我创建的.env文件,以便Python可以读取它。另外,我不想将env变量添加到zprofile中 vim .env 在Python 3外壳中 import os os.environ['token_id'] 它说,它没有定义。您可以在运行它之前找到它的来源: $ source .env $ python >>

我使用命令创建了.env文件,并创建了变量,如
token\u id=“13423edq234”
等。我不想使用像dotenv这样的外部包来读取文件。我只是想知道是否有办法加载我创建的.env文件,以便Python可以读取它。另外,我不想将env变量添加到zprofile中

vim .env
在Python 3外壳中

import os
os.environ['token_id']

它说,它没有定义。

您可以在运行它之前找到它的来源:

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

谷歌搜索“dotenv python”会返回几个相关文档。例如,此python包:。这个堆栈溢出问题:.

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

是我遇到的一个包裹。它适用于基于Unix的操作系统。因为我使用的是带有zsh外壳的mac,所以它的工作原理非常棒。这是到的链接

按照安装说明操作后,创建一个.envrc文件并编写自定义的env变量,在我的例子中,在.envrc文件中是这样的

export token_id="13423edq234"
最好的部分是它自动加载和卸载变量,这样你的.profile文件就保持干净。如果您有任何疑问,请告诉我。

像@Vaibhav一样,我使用以下
.envrc
文件:

[ -f secrets ] && eval $(cat secrets | sed 's/^/export /') || echo "no secrets file"
然后,您可以拥有一个
secrets
文件(如果您愿意,也可以称之为
.env
,并相应地更新
.envrc
文件):


.envrc
sed
部分允许您在
secrets
/
.env

文件中选择性地包含
export
语句。

您通过
vim.env
告诉我们什么意思?这也不是真正的Python问题。如果环境变量存在,Python或任何其他程序都可以访问它。@mkrieger1同意。我不想用自定义环境变量填充.profile。我找到了一种适合Unix操作系统的方法,并添加了我的答案。它似乎不适合我。它仍然抛出关键错误。我忘了说您应该使用
export
关键字,这意味着您应该将
.env
的内容更改为
export-token\u id=“1234”
。回答错误,根本没有用。
MY_ENV_VAR1 = foo
MY_ENV_VAR2 = bar