有没有办法读取macOS中的.env文件?
我使用命令创建了.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 >>
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