我正在尝试了解如何调用虚拟环境。我负责管理的网站有一个.venv目录。当我进入网站进行操作时,我理解我需要使用source .venv / bin / activate来调用它。我的问题是:Web应用程序如何调用虚拟环境?我怎么知道它使用的是.venv,而不是全局的python?
更多详细信息:这是一个Drupal网站,Django对它进行了嘲讽。 Apache它是主服务器。我相信Django是由gunicorn服务的。设计师离开了小镇 _
答案 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
瞧