【问题标题】:canopy enthought virtual environment wsgicanopy enthought 虚拟环境 wsgi
【发布时间】: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


    【解决方案1】:

    去阅读:

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    相关资源
    最近更新 更多