让Flask使用Python3(Apache / mod_wsgi)

i

我已经运行了一个基本的“ hello world” Flask应用程序。

我在使用Apache 2.4的Ubuntu 14.04上。我已经安装了mod_wsgi。

我创建了一个~/web/piFlask/venv/以容纳安装了flask的virtualenv创建的Python2。

但是,我希望我的flaskapp导入我编写的Python3.x模块。

我需要怎么做才能做到这一点?

我尝试创建一个~/web/piFlask/venv3/并修改~/web/piFlask/piFlask.wsgi

import os, sys

PROJECT_DIR = '/home/pi/web/piFlask'

activate_this = os.path.join(PROJECT_DIR, 'venv3/bin', 'activate_this.py')
execfile(activate_this, dict(__file__=activate_this))
sys.path.insert(0, PROJECT_DIR)

from piFlask import app as application

application.debug = True

但是我认为这还不够。这个.wsgi实际上是一个将由mod_wsgi执行的Python文件,我确定它将使用Py2.x解释器来执行。

因此,如果我正确理解,则mod_wsgi会启动系统Python以执行此.wsgi,这反过来会启动我的~/web/piFlask/venv/解释器以实际处理请求。

我想我可以说服mod_wsgi使用系统Python3或我自己的venv3 / ...通过WSGIPythonPath /home/pi/web/piFlask/venv3/lib/python3.4/site-packages在/etc/apache2/mods-available/wsgi.conf中进行设置

但是我在某处找到一条指令,说您必须为Py3编译mod_wsgi,而最底层很快就会解决此问题。

格雷厄姆·邓普顿

正确,mod_wsgi需要针对特定​​的Python版本进行编译,因为它实际上不会执行“ python”可执行文件。相反,Python库链接到mod_wsgi。

最终结果是您无法在使用Python 2解释器运行的应用程序中混合使用Python 3代码。

您将不得不考虑使您的代码在Python 2和3下都可运行,然后可以选择要使用的代码,并使用针对所选版本编译的mod_wsgi版本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python BaseHTTPServer与Apache和mod_wsgi

来自分类Dev

Apache mod_wsgi错误:禁止

来自分类Dev

Django,Apache和mod_wsgi

来自分类Dev

Django + mod_wsgi + Apache = 403禁止

来自分类Dev

Apache,Django和mod_wsgi

来自分类Dev

Apache mod_wsgi和Qt

来自分类Dev

Apache 和 mod_wsgi 的几个进程

来自分类Dev

Apache、Django 和 mod_wsgi

来自分类Dev

Python mod_wsgi无法正常工作

来自分类Dev

Django 和 mod_wsgi python 版本?

来自分类Dev

尝试使用mod_wsgi设置烧瓶

来自分类Dev

尝试使用mod_wsgi设置烧瓶

来自分类Dev

使用mod_wsgi访问Bottle应用

来自分类Dev

无法使用mod_wsgi从python wsgi连接到pymssql

来自分类Dev

在Ubuntu上为Python3安装mod_wsgi

来自分类Dev

mod_wsgi用于正确版本的python3

来自分类Dev

mod_wsgi用于python3的正确版本

来自分类Dev

在 Google Compute Engine 上为 Flask 配置 Apache WSGI(使用 mod_wsgi 的 Flask 导入错误)

来自分类Dev

Apache2 带有 mod_wsgi python3 'TypeError:' 并返回错误 500

来自分类Dev

Apache mod_wsgi python 变量持久化

来自分类Dev

使用mod_wsgi在Apache背后设置pico

来自分类Dev

无法使用Apache + mod_wsgi远程访问Django应用

来自分类Dev

使用Apache mod_wsgi进行HTTP流

来自分类Dev

使用mod_wsgi用apache设置Django

来自分类Dev

使用mod_wsgi CSRF验证的Apache上的Django失败

来自分类Dev

Apache 无法使用 mod_wsgi 作为 Windows 服务启动

来自分类Dev

使用 mod_wsgi 和 SSL 的 Apache 石墨子域

来自分类Dev

使用 mod_wsgi 在 Apache 上部署 Django

来自分类Dev

使用mod_wsgi在python中导入表单当前目录