如何在pipenv中设置环境变量?

54

我需要为正在pipenv中运行的python项目设置一些访问令牌环境变量。每次启动pipenv时,都需要设置这些环境变量。

我该如何操作?

1个回答

90
如果你想在每次启动项目时自动加载一些环境变量,你可以在项目的根文件夹旁边设置一个名为.env的文件,与Pipfile放在一起。请参阅自动加载.env文件
你可以从正确的文件夹运行以下命令来创建这个.env文件:
echo MY_TOKEN=SuperToKen >.env  # create the file and write into
echo MY_VAR=SuperVar >>.env     # append to the file

或者手动创建以获取:
MY_TOKEN=SuperToKen
MY_VAR=SuperVar

这个文件将在使用 pipenv shellpipenv run your_command 命令时自动加载,并且环境变量将可用。

您可以在代码中访问/检查它们:

print(os.getenv('MY_TOKEN', 'Token Not found'))

不确定其他IDE,但在Pycharm中,您需要插件Env File来自动加载它(从运行/调试配置中访问Env File选项卡)。
你可以在这个文件中使用前导符号#来添加注释。
# My test token
MY_TOKEN=SuperToKen

注意:当然你必须将这个文件从你的版本控制中排除(比如git)。

1
只是好奇:在退出pipenv管理的环境时,是否有可能_unset_环境变量?记录一下,我正在使用virtualenvwrapper中的postactivate/postdeactivate来实现这一点。 - Georges Martin
@GeorgesMartin 不确定您需要什么,当您退出虚拟环境时,变量将不再可用。 - PRMoureu
1
@bro-grammer,pipenv run 期望在你的环境中启动一个命令,例如 pipenv run flask run - PRMoureu
1
当您更改环境变量时,请记得重新启动 shell! - G M
1
在PyCharm和命令行中使其工作的另一种方法是使用python-dotenv包,无需进行任何其他设置。 - Mark
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接