当前位置: 首页 > 面试题库 >

让Flask使用Python3(Apache / mod_wsgi)

丁茂
2023-03-14
问题内容

我已经运行了一个基本的“ 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版本。



 类似资料:
  • 我有一个基本的“hello world”烧瓶应用程序正在运行。 我在Ubuntu 14.04上,使用Apache 2.4。我安装了mod_wsgi。 我创建了一个~/web/piFlask/venv/来保存一个安装了flask的virtualenv创建的Python2。 但是,我希望我的flaskapp导入我编写的Python3. x模块。 我需要做什么才能做到这一点? 我试着创建一个

  • 我正在尝试部署我构建的用于部署在Apache服务器上的Flask Web应用程序。我在Raspberry Pi 3上使用Raspbian(Jessie)OS。该应用程序在flask内置的开发Web服务器上运行完美,但我无法在Apache服务器上部署它。 这就是我所做的: conf文件为:etc/apach2/sites available/arduinoweb。形态: 中的WSGI脚本文件: Ap

  • 问题内容: 我已经安装了Apache服务器,并且正在通过mod_wsgi处理Flask响应。我已经通过别名注册了WSGI脚本: [httpd.conf] 我在上面的路径中添加了相应的WSGI文件: [/mnt/www/wsgi-scripts/service.wsgi] 我有一个简单的Flask Python测试脚本,提供了服务模块: [/mnt/www/wsgi-scripts/service.

  • 我试图通过子URL“/meet”使jitsi meet在apache服务器上工作,但我只得到索引。html视图,不可能加载房间。 首先,我进行了软件包安装,停止nginx并使用以下参数配置apache virtualhost: 我在这里找到了这个配置,Jitsi meet的github。我修改了它以重定向本地主机上的所有请求,以避免DNS解析。不幸的是,它没有工作,所以经过大量测试,我卸载了所有的

  • 本文向大家介绍让Apache Shiro保护你的应用,包括了让Apache Shiro保护你的应用的使用技巧和注意事项,需要的朋友参考一下 在尝试保护你的应用时,你是否有过挫败感?是否觉得现有的Java安全解决方案难以使用,只会让你更糊涂?本文介绍的Apache Shiro,是一个不同寻常的Java安全框架,为保护应用提供了简单而强大的方法。本文还解释了Apache Shiro的项目目标、架构理念

  • 本文向大家介绍CentOS7部署Flask(Apache、mod_wsgi、Python36、venv),包括了CentOS7部署Flask(Apache、mod_wsgi、Python36、venv)的使用技巧和注意事项,需要的朋友参考一下 一、安装Apache 防火墙开放80端口 开启Apache,外网已经可以通过ip访问Apache的默认页面了 二、安装Python36、pip3、virtu