为了账号安全,请及时绑定邮箱和手机立即绑定

pyenv-virtualenv 中的环境变量

pyenv-virtualenv 中的环境变量

三国纷争 2023-07-18 15:33:47
我创建了一个用于pyenv virtualenv 3.5.9 projectname开发 django 项目的虚拟环境。如何设置环境变量供我的代码使用?我尝试像这样添加环境变量 DATABASE_USER /Users/developer/.pyenv/versions/projectname/bin/activate :export DATABASE_USER="dbuser"当我尝试echo $DATABASE_USER打印一个空字符串时。尝试安装zsh-autoenv现在我可以echo $DATABASE_USER获取 .autoenv.zsh 文件中设置的值。但我似乎无法让环境变量可用于我的 django 代码:如果我尝试os.getenv('DATABASE_USER', '')在 virtualenv 内的 python shell 中,我得到''可能出什么问题了?zsh-autoenv 变量是否仅适用于 zsh shell,而不适用python manage.py shell?
查看完整描述

2 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

正如您所注意到的,pyenv似乎并没有实际使用该bin/activate文件。他们没有说激活方法是什么,但是像你一样,在那里添加环境变量没有产生任何结果。

最后,他们最终安装了autoenv,它标榜自己是基于目录的环境。它允许您在目录中创建 .env 文件,当您cd进入该目录时,它会运行 .env 文件。您可以将其用作环境变量,也可以向其中添加其他任何内容。

我在 autoenv 页面上注意到他们说你应该使用direnv来代替,因为它具有更好的功能并且是更高质量的软件。这些都不是特定于 Python 或 pyenv 的,如果您从目录外部调用 python 代码,它们可能无法工作。由于您使用的是 pyenv,因此您可能会从目录中运行代码,因此我认为两者都很有可能起作用。


查看完整回答
反对 回复 2023-07-18
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

direnv在 MacOS/zsh 上安装并配置为:

brew install direnv

eval "$(direnv hook zsh)"

cd <your-project>

echo export FOO=foo > .envrc

direnv grant .

echo $FOO

它就像一个魅力。


查看完整回答
反对 回复 2023-07-18
  • 2 回答
  • 0 关注
  • 100 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信