繁体   English   中英

pyenv-virtualenv 中的环境变量

[英]Enviroment variables in pyenv-virtualenv

我已经使用pyenv virtualenv 3.5.9 projectname创建了一个用于开发 django 项目的虚拟环境。

如何为我的代码设置环境变量以供使用?

我尝试在/Users/developer/.pyenv/versions/projectname/bin/activate添加环境变量 DATABASE_USER ,如下所示:

export DATABASE_USER="dbuser"

当我尝试echo $DATABASE_USER ,会打印一个空字符串。

尝试安装zsh-autoenv

现在我可以echo $DATABASE_USER并获取 .autoenv.zsh 文件中设置的值。

但我似乎无法让环境变量对我的 Django 代码可用:

如果我尝试在 virtualenv 内的 python shell 中os.getenv('DATABASE_USER', '') ,我得到''

可能有什么问题? zsh-autoenv 变量是否仅适用于 zsh shell 而不是python manage.py shell

我想知道类似的事情,我偶然发现了一个reddit 帖子,那里有人问了同样的问题,并最终跟进了一些有趣的发现。

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

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

我在 autoenv 页面上注意到他们说您可能应该改用direnv ,因为它具有更好的功能并且是更高质量的软件。 这些都不是 Python 或 pyenv 特定的,如果您从目录外部调用 Python 代码,它们可能无法工作。 由于您使用的是 pyenv,因此无论如何您都可能在目录中运行您的代码,因此我认为任何一个都可以正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM