我正在尝试使用Python2.7、烧瓶、apache2、mod_wsgi和Enthought虚拟环境(使用随Canopy附带的canopy_cli命令行接口创建)创建一个网站。我以前也这样做过,在dreamhost上的实时版本似乎对他们的passenger_wsgi恶作剧很好。
我正试图在家里用我的旧笔记本电脑做一个开发服务器。我也是用同样的方式设置的。我不知道如何将什么插入到WSGI文件中,以使其使用这个虚拟环境。对于正常的虚拟环境,在env/bin/目录中有一个“activate_this.py”脚本,但是在Canopy中没有。
在dreamhost上,他们建议在wsgi文件中使用以下语法:
INTERP = os.path.join(os.environ['HOME'], 'project', 'env', 'bin', 'python')
if sys.executable != INTERP:
os.execl(INTERP, INTERP, *sys.argv)
sys.path.append(os.getcwd())它在passenger_wsgi中运行得很好,但是当我使用mod_wsgi在开发服务器上运行它时,会得到一个错误:
脚本头的过早结束: dev.wsgi /home/user/project/env/bin/python:无法打开文件'mod_wsgi':Errno 2没有这样的文件或目录
因此,我想我的选择是要么使用virtualenv在dev服务器上创建一个正常的虚拟环境(这将有一个可以以正常方式激活的activate_this.py脚本),要么学习如何在我的主计算机上设置passenger_wsgi。
也就是说,除非有人以前已经成功地完成了这个任务,并且可以告诉我如何让一个wsgi脚本/烧瓶站点在Can皮虚拟环境中运行?
发布于 2014-02-10 00:44:12
去读:
Apache下的mod_wsgi模块使用Python作为嵌入式系统,执行os.execl()是没有任何意义的。使用os.getcwd()也没有多大意义,因为工作目录并不在源代码所在的位置。
无论如何,请阅读该链接,了解如何在Apache/mod_wsgi中设置虚拟环境。
https://stackoverflow.com/questions/21663240
复制相似问题