django应用程序是如何启动的;什么是虚拟的?

django应用程序是如何启动的;什么是虚拟的?,django,virtualenv,Django,Virtualenv,我试图了解虚拟环境是如何被调用的。我负责管理的网站有一个.venv目录。当我使用ssh连接到站点来处理它时,我知道我需要使用source.venv/bin/activate调用它。我的问题是:web应用程序如何调用虚拟环境?我怎么知道它使用的是.venv,而不是全局python 更多细节:这是一个Drupal网站,上面有Django。Apache将其作为主服务器。我相信这道菜是由古尼康提供的。设计师离开了小镇 _如果在反向代理后面只使用Django,Django将为启动服务器的用户使用任何pyt

我试图了解虚拟环境是如何被调用的。我负责管理的网站有一个.venv目录。当我使用ssh连接到站点来处理它时,我知道我需要使用source.venv/bin/activate调用它。我的问题是:web应用程序如何调用虚拟环境?我怎么知道它使用的是.venv,而不是全局python

更多细节:这是一个Drupal网站,上面有Django。Apache将其作为主服务器。我相信这道菜是由古尼康提供的。设计师离开了小镇
_

如果在反向代理后面只使用Django,Django将为启动服务器的用户使用任何python环境,这是在
哪个python
命令中确定的。如果您使用的是像Gunicorn这样的管理工具,则可以指定在这些配置中使用的环境。尽管Gunicorn本身要求我们在调用Gunicorn之前激活虚拟环境 编辑:
由于您使用的是Gunicorn,请看一下这一点,

在virtualenv中调用python时只需使用绝对路径即可。
例如,您的virtualenv位于
/var/webapps/yoursite/env


所以你必须把它叫做
/var/webapps/yoursite/env/bin/python

好吧,我发现了在我的例子中,django是如何调用virtualenv的

基本目录/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

瞧,这要看情况而定,但应用程序无法启动自己的环境。你和网站的创建者谈过了吗?它运行在什么上?它很可能在您的web服务器配置中。您使用的是哪一个?我在gconf.py文件中没有看到任何内容,即gunicorn设置(我想)。Apache首先启动,因为它驱动主Drupal站点,而我在Apache2.conf中没有看到任何东西。我只是觉得如果把.venv放在那里,就必须以某种方式调用它。谢谢你的参考。但通读它,我看不出网站在哪里调用virtualenv。在他们的情况下,他们用Nginx代替gunicorn。我在gunicorn上运行Apache。我的apacheconf没有提到环境。也许它设置得更早,服务器启动时?再看看,它没有明确提到,但您需要在启动gunicorn之前激活您的虚拟环境。