在 virtualenv 下设置 DJANGO_SETTINGS_MODULE?

Posted

技术标签:

【中文标题】在 virtualenv 下设置 DJANGO_SETTINGS_MODULE?【英文标题】:Setting DJANGO_SETTINGS_MODULE under virtualenv? 【发布时间】:2011-11-27 18:24:12 【问题描述】:

我希望环境变量 DJANGO_SETTINGS_MODULE 根据我对工作的要求而改变。在我看来,我想将其设置为 .virtualenvs/postmkvirtualenv,但我的试用没有效果。

ftpmaint@millstone:~$ cat ~/.virtualenvs/postmkvirtualenv
#!/bin/bash
# This hook is run after a new virtualenv is activated.
export DJANGO_SETTINGS_MODULE=newproject.settings
ftpmaint@millstone:~$ echo $DJANGO_SETTINGS_MODULE
az.settings
ftpmaint@millstone:~$ workon newproject
(newproject)ftpmaint@millstone:~$ echo $DJANGO_SETTINGS_MODULE
az.settings

有人能帮我纠正一下吗?我应该把那个出口放在哪里?

另外,我停用后会恢复吗?如果没有,有什么自然的方法可以恢复吗?

【问题讨论】:

你可以这样做:***.com/questions/8826534/… 【参考方案1】:

我之前做过的一种方法是将导出语句附加到 ./bin/activate 的末尾

export DJANGO_SETTINGS_MODULE="myproject.settings"

【讨论】:

【参考方案2】:

您在正确的轨道上,但您想使用 postactivate 挂钩而不是 postmkvirtualenv

它不会在停用时自动恢复。值得庆幸的是,您可以使用 postdeactivate 挂钩手动恢复您在激活时更改的任何环境变量。

【讨论】:

谢谢(感谢两位回答者)。关键是“激活”,我之前不明白。 postactivate 钩子不是对所有环境都通用吗?我认为在那里设置DJANGO_SETTINGS_MODULE 没什么意义。 postactivate 钩子有全局版本和本地版本。对于像这样的仅限本地设置,您需要将 export 添加到 $VIRTUAL_ENV/bin/postactivate 而不是全局 $VIRTUALENVWRAPPER_HOOK_DIR/postactivate

以上是关于在 virtualenv 下设置 DJANGO_SETTINGS_MODULE?的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 PyCharm 在 Vagrant/VirtualBox 远程解释器配置中使用 virtualenv?

ubuntu18+virtualenv配置

快速上手virtualenv

在 windows 上为 django 开发设置 virtualenv,

如何为 crontab 设置 virtualenv?

设置 virtualenv:没有名为“pip”的模块