2012-08-01 47 views
2

我正在部署一个web2py应用程序,我将通过mod_wsgiApache一起提供它。我在我的虚拟主机配置如下WSGI指令:Apache2 mod_wsgi中的Web2py与virtualenv

WSGIDaemonProcess web2py user=www-data group=www-data \ 
          display-name=%{GROUP} 
    WSGIProcessGroup web2py 
    WSGIScriptAlias//var/www/web2py/wsgihandler.py 

这是工作,但它走的是全系统的Python安装。因此,找不到一些软件包(因为它们只存在于我的virtualenv中)。我想告诉这个特殊的虚拟主机(或整个Apache的,如果没有其他的方式),使用Python安装在我的虚拟环境(/home/myuser/.virtualenvs/python2.7.2/bin)。

是否有可能配置此为Apache?或者更好,只是为了我的虚拟主机?我想造成尽可能少的影响到系统的其余部分(特别是,我不想修改默认的Python版本所使用的系统范围内)

回答

3

在你wsgihandler.py在顶部加入这个...

activate_this = '/path/to/virtualenv/bin/activate_this.py' 
execfile(activate_this, dict(__file__=activate_this) 
import sys 
sys.path.insert(0, '/path/to/web2py_dir') 
+0

这是否会使用Python在虚拟ENV,还是将只使用包装中的virtualenv?我的系统python是2.6,而我的virtualenv python是2.7。我的web2py应用程序需要2.7。在activate_this.py以下注释可以读:“这可以用来当你必须使用现有的Python解释器,而不是 的的virtualenv斌/ Python的” – dangonfast 2012-08-01 12:52:26

+0

首先,你需要确保'mod_wsgi'编译为您的Python版本。完成之后,此配置建议将起作用。 – 2012-08-01 13:49:31

+0

为什么这样? mod_wsgi将使用系统python,或者其路径中的那个,不是吗?当然,我不需要为我的系统中安装的每个不同的python版本编译mod_wsgi ...此外,我不编译mod_wsgi:我正在从Ubuntu存储库安装它。 – dangonfast 2012-08-01 15:15:24

相关问题