【发布时间】:2014-03-06 23:02:12
【问题描述】:
我正在尝试使用 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 中运行良好,但是当我使用mod_wsgi 在我的开发服务器上运行它时出现错误:
脚本头提前结束:dev.wsgi
/home/user/project/env/bin/python: 无法打开文件 'mod_wsgi': [Errno 2] 没有这样的文件或目录
所以我想我的选择是使用 virtualenv 在开发服务器上创建一个普通的虚拟环境(这将有一个可以正常方式激活的 activate_this.py 脚本),或者学习如何在我的家用机。
也就是说,除非有人之前成功地做到了这一点并且可以告诉我如何让 wsgi 脚本/flask 站点在 Canopy 虚拟环境中运行?
【问题讨论】:
标签: python apache mod-wsgi canopy python-venv