我正在尝试使用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虚拟环境中运行?
答案 0 :(得分:2)
阅读:
Apache下的mod_wsgi模块使用Python作为嵌入式系统,执行os.execl()没有任何意义。使用os.getcwd()也没有意义,因为工作目录不是你的源代码所在。
无论如何,请阅读有关如何在Apache / mod_wsgi中设置虚拟环境的链接。