1

我正在尝试使用 Python(2.7)、flask、apache2、mod_wsgi 和 Enthought Canopy 虚拟环境(使用canopy_cliCanopy 附带的命令行界面创建)创建一个网站。我以前做过这个,dreamhost 上的现场版本似乎与他们的乘客 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 脚本),或者学习如何在我的家用机器上设置passenger_wsgi。

也就是说,除非有人之前成功地做到了这一点,并且可以告诉我如何让 wsgi 脚本/烧瓶站点在 Canopy 虚拟环境中运行?

4

1 回答 1

2

去阅读:

Apache 下的 mod_wsgi 模块使用 Python 作为嵌入式系统,只是做 os.execl() 没有任何意义。使用 os.getcwd() 也没有多大意义,因为工作目录不会是您的源代码所在的位置。

无论如何,请阅读该链接以了解如何在 Apache/mod_wsgi 中设置虚拟环境。

于 2014-02-10T00:44:12.240 回答