冠层虚拟环境wsgi

时间:2014-02-09 18:40:27

标签: python apache mod-wsgi canopy python-venv

我正在尝试使用Python(2.7),flask,apache2,mod_wsgi和Enthought Canopy虚拟环境创建一个网站(使用Canopy附带的canopy_cli命令行界面创建)。我以前做过这个,而dreamhost上的实时版本似乎与他们的passenger_wsgi恶作剧一起运行良好。

我正在尝试在我家的旧笔记本电脑上制作开发服务器。我以相同的方式设置了venv。我不知道要在WSGI文件中插入什么内容以使其使用此虚拟环境。对于普通的虚拟环境,在env / bin /目录中有一个'activate_this.py'脚本,但是在Canopy venv中没有。

在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中工作得很好但是当我在我的dev服务器上用mod_wsgi运行它时出现错误:

  

脚本标题的提前结束:dev.wsgi

     

/ home / user / project / env / bin / python:无法打开文件'mod_wsgi':[Errno 2]没有这样的文件或目录

所以我想我的选择要么是使用virtualenv在开发服务器上创建一个普通的虚拟环境(它有一个可以正常方式激活的activate_this.py脚本),或者学习如何在我的设备上设置passenger_wsgi家用机器。

也就是说,除非有人在成功之前完成了这项工作,并且可以告诉我如何让一个wsgi script / flask网站在Canopy虚拟环境中运行?

1 个答案:

答案 0 :(得分:2)

阅读:

Apache下的mod_wsgi模块使用Python作为嵌入式系统,执行os.execl()没有任何意义。使用os.getcwd()也没有意义,因为工作目录不是你的源代码所在。

无论如何,请阅读有关如何在Apache / mod_wsgi中设置虚拟环境的链接。