django app如何启动它的virtualenv?

时间:2017-03-22 00:32:54

标签: django virtualenv

我正在尝试了解如何调用虚拟环境。我负责管理的网站有一个.venv目录。当我进入网站进行操作时,我理解我需要使用source .venv / bin / activate来调用它。我的问题是:Web应用程序如何调用虚拟环境?我怎么知道它使用的是.venv,而不是全局的python?

更多详细信息:这是一个Drupal网站,Django对它进行了嘲讽。 Apache它是主服务器。我相信Django是由gunicorn服务的。设计师离开了小镇 _

3 个答案:

答案 0 :(得分:0)

如果在反向代理后面只使用Django,Django将使用which python命令中确定启动服务器的用户的python环境。如果您使用的是像Gunicorn这样的管理工具,则可以指定在这些配置中使用哪种环境。虽然Gunicorn本身要求我们在调用Gunicorn之前激活虚拟环境 编辑: 既然你正在使用Gunicorn,请看一下https://www.digitalocean.com/community/tutorials/how-to-deploy-python-wsgi-apps-using-gunicorn-http-server-behind-nginx

答案 1 :(得分:0)

在virtualenv中调用python时使用绝对路径 例如,您的virtualenv位于/var/webapps/yoursite/env
所以你必须把它称为/var/webapps/yoursite/env/bin/python

答案 2 :(得分:0)

好的,我发现在我的情况下,为django调用了virtualenv。

BASE_DIR / run / gunicorn脚本有:

#GUNICORN='/usr/bin/gunicorn'
GUNICORN=".venv/bin/gunicorn"
GUNICORN_CONF="$BASE_DIR/run/gconf.py"
.....
$GUNICORN --config $GUNICORN_CONF --daemon --pid $PIDFILE $MODULE

所以这会把我们带到.venv,其中gunicorn脚本开始于:

#!/media/disk/www/aavso_apps/.venv/bin/python