我使用命令创建了.env文件,并创建了token_id="13423edq234"
之类的变量,依此类推。我不想使用像dotenv这样的外部程序包来读取文件。我只想知道是否有任何方式可以加载我创建的.env文件,以便可以被Python读取。另外我也不想将env变量添加到zprofile中。
vim .env
在Python 3 shell中,
import os
os.environ['token_id']
它说,它没有定义。
答案 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。