首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >pyenv-virtualenv中的环境变量

pyenv-virtualenv中的环境变量
EN

Stack Overflow用户
提问于 2020-09-07 14:11:14
回答 1查看 468关注 0票数 3

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

如何设置我的代码要使用的环境变量?

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-21 01:46:51

我也想知道类似的事情,我偶然发现了一个别人问过同样问题的reddit thread,最终followed up注意到了一些有趣的发现。

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

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63779259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文