在 Ubuntu 上安装 Python3 的 mod_wsgi

2024-02-04

谁能给我一套在 Ubuntu for Python 3 上安装 mod_wsgi 的清晰说明?

我确实使用 Python3 成功获得了 Flask 和 mod_wsgi,并且短暂地感到高兴。

...直到我查看 Apache 的日志并意识到我遇到了这个问题:https://askubuntu.com/questions/569550/assertionerror-using-apache2-and-libapache2-mod-wsgi-py3-on-ubuntu-14-04-python https://askubuntu.com/questions/569550/assertionerror-using-apache2-and-libapache2-mod-wsgi-py3-on-ubuntu-14-04-python

apt-get正在安装过时的版本libapache2-mod-wsgi-py3这会导致 Apache 日志中出现错误。(我应该报告此事吗?如果报告的话,去哪里报告?)

在链接中,工程师正在使用pip安装更新的版本。

有趣的是,他似乎正在将其安装到虚拟的 Python3 环境中。 (这与使用系统有什么不同吗?pip3?)

他还使用pip3 install mod_wsgi, but pip3 search mod_wsgi返回:

(编辑:不,他没有,他使用 pip 而不是 pip3。这是对的吗?他的电线交叉了吗?pip 不会忽略他在 py3venv 中的事实并简单地使用系统的 py2 安装吗?但无论如何,这并不能解决混乱......)

mod_wsgi-metrics          - Metrics package for Apache/mod_wsgi.
cykooz.recipe.pastewsgi   - Buildout recipe to create paste.deploy entry points for mod_wsgi or uwsgi
mod_wsgi-httpd            - Installer for Apache httpd web server.
apachemiddleware          - Useful Python middleware for use with mod_wsgi deployments
tranchitella.recipe.wsgi  - Buildout recipe to create paste.deploy entry points for mod_wsgi
mod_wsgi                  - Installer for Apache/mod_wsgi.

那么什么是mod_wsgi-httpd?确定这不是我想要的吗?

最后,任何人都可以提供从源代码安装 mod_wsgi 的链接吗?

编辑:我不明白工程师为什么使用pip install mod_wsgi而不是pip3 ...。这肯定是不对的吧?但如果我使用 pip3,我会得到:

pi@PiDroplet:~$ cd web/piFlask

pi@PiDroplet:~/web/piFlask$ source ./venv3/bin/activate
(venv3)
pi@PiDroplet:~/web/piFlask$ pip3 install mod_wsgi
Downloading/unpacking mod-wsgi
  Downloading mod_wsgi-4.4.12.tar.gz (991kB): 991kB downloaded
  Running setup.py (path:/home/pi/web/piFlask/venv3/build/mod-wsgi/setup.py) egg_info for package mod-wsgi
    Traceback (most recent call last):
      File "<string>", line 17, in <module>
      File "/home/pi/web/piFlask/venv3/build/mod-wsgi/setup.py", line 141, in <module>
        'missing Apache httpd server packages.' % APXS)
    RuntimeError: The 'apxs' command appears not to be installed or is not executable. Please check the list of prerequisites in the documentation for this package and install any missing Apache httpd server packages.
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 17, in <module>

  File "/home/pi/web/piFlask/venv3/build/mod-wsgi/setup.py", line 141, in <module>

    'missing Apache httpd server packages.' % APXS)

RuntimeError: The 'apxs' command appears not to be installed or is not executable. Please check the list of prerequisites in the documentation for this package and install any missing Apache httpd server packages.

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /home/pi/web/piFlask/venv3/build/mod-wsgi
Storing debug log for failure in /home/pi/.pip/pip.log

现在我尝试pip3 install mod_wsgi-httpd,编译大约需要五分钟:

(venv3)
pi@PiDroplet:~/web/piFlask$ pip3 install mod_wsgi-httpd
Downloading/unpacking mod-wsgi-httpd
  Downloading mod_wsgi-httpd-2.4.12.5.tar.gz
  Running setup.py (path:/home/pi/web/piFlask/venv3/build/mod-wsgi-httpd/setup.py) egg_info for package mod-wsgi-httpd
    apr-1.5.2/
    apr-1.5.2/config.layout
    apr-1.5.2/build.conf
    apr-1.5.2/emacs-mode
    :

所以现在我担心我的 Py3 virtualenv 中有第二个 Apache。

然而,这确实消除了错误;pip3 install mod_wsgi现在已成功完成。

编辑:但现在我已经完全摆脱了尝试遵循他的指示:我没有/etc/apache2/mods-available/wsgi_express.load,如果他建议这样做,那么首先这似乎是任意的,其次是他建议放入其中的文本,即LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi-py34.cpython-34m.so-- 我的系统上不存在该文件。

我有/etc/apache2/mods-available/wsgi.load

再次陷入技术困境,有人可以给我留言吗?


我打算将此答案作为“可能对其他人有用的自我注释”。

apt-get在撰写本文时安装了过时版本mod_wsgi.

pip安装最新版本。它通过下载源代码并编译来实现这一点。

设置 Python3 virtualenv 并使用以下命令激活它source ./venv3/bin/activate,验证which pip确认它现在正在使用此环境。看来 pip 和 pip3 是可以互换的。

就我而言,我的./venv3位于我的烧瓶文件夹内。而唯一的目的就是mod_wsgi就是要有Apache路由http://myfoo.org/flask向我的烧瓶应用程序发出请求。所以安装是有意义的mod_wsgi进入这个venv3.

然而,对于pip要成功编译它,我首先需要sudo apt-get install apache2-dev它提供了必要的头文件。然后我需要重新启动。然后pip install mod_wsgi完成就好。

然后按照原始链接中的说明进行操作:

(venv3)
$ sudo venv3/bin/mod_wsgi-express install-module
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi-py34.cpython-34m.so
WSGIPythonHome /home/pi/web/piFlask/venv3

然后我必须创建/etc/apache2/mods-available/wsgi_express.{load,conf}分别包含这两行。

最后启用该模块并检查Apache的错误日志:

a2enmod wsgi
sudo service apache2 restart
cat /var/log/apache2/error.log
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Ubuntu 上安装 Python3 的 mod_wsgi 的相关文章

  • tkinter - 检查文本小部件是否为空

    操作系统 Windows 8 1 Python 3 5 在 Tkinter 中 我发现了很多代码来验证输入框是否为空 但是当我尝试对文本小部件应用相同的方法时 它不起作用 看起来文本小部件有一个 n 字符 这可能就是问题所在 知道如何进行此
  • Docker 错误绑定:地址已在使用中

    当我跑步时docker compose up在我的 Docker 项目中 它失败并显示以下消息 启动用户层代理时出错 监听 tcp 0 0 0 0 3000 绑定 地址已在使用中 netstat pna grep 3000 显示这个 tcp
  • Python 3 os.urandom

    在哪里可以找到完整的教程或文档os urandom 我需要获得一个随机 int 来从 80 个字符的字符串中选择一个字符 如果你只需要一个随机整数 你可以使用random randint a b 来自随机模块 http docs pytho
  • 如何在python 3.7中生成条形码

    我正在使用 python 3 7 为了生成条形码 我尝试使用安装 pyBarcode 库pip install pyBarcode 但它显示以下错误 找不到满足 pyBarcode 要求的版本 来自版本 找不到 pyBarcode 的匹配分
  • Python3.0 - 标记化和取消标记化

    我正在使用类似于以下简化脚本的内容来解析较大文件中的 python 片段 import io import tokenize src foo bar src bytes src encode src io BytesIO src src l
  • python中的[][](双方括号运算符)运算符是什么?

    我是 python 新手 我一直在寻找分配变量时进行三元运算的正确方法 我发现有人在堆栈溢出上发表了一个帖子 提出了这样的建议 var smaller bigger 7 gt 1 其中左边的值为 False 右边的值为 True 我运行它并
  • 创建 matplotlib 注释后如何移动它们?

    我有以下代码来使用生成箭头ax annotate import numpy as np import matplotlib pyplot as plt fig ax plt subplots t np arange 0 0 5 0 0 01
  • Python 去掉字节 b' '

    import save string with open image jpg rb as f byte f read 1 while byte b byte f read 1 print byte 我得到的字节如下 b x00 我该如何摆脱
  • Python 3 print() 到变量

    在Python 3中 您可以使用 print 函数将数据写入文件 例如print my data file my open file 这很好 而且非常酷 但你可以吗print到 字符串 变量 如果是这样 怎么办 在我的特定用例中 我试图避免
  • Python/curve_fit:无法通过初始化猜测传递数组

    我有这个函数来计算某种多项式 def pipoly df pj n np size pj p pj 0 for j in range 1 n p pj j df j return p pj应该是一个包含多项式系数的初始猜测的数组 因此 多项
  • Pycharm 中的 Traitlets.traitlets.TraitError

    我是Python的初学者 我面临以下问题 每当我启动 pycharm 社区版 版本 5 0 3 时 Python 控制台无法启动并显示以下错误 usr bin python2 7 usr lib pycharm community help
  • git 错误:无法处理 https

    当我尝试使用 git clone 时https xxx https xxx我收到以下错误我不处理协议 https 有人可以帮我吗 完整消息 dementrock dementrock A8Se git 克隆https git innosta
  • 加入语音频道(discord.py)

    当我尝试让我的机器人加入我的语音频道时 出现以下错误 await client join voice channel voice channel 产生错误的行 Traceback most recent call last File usr
  • 找不到满足Flask要求的版本

    找不到满足Flask要求的版本 https i stack imgur com K2gR4 jpgpip install U Flask 收集瓶 无法获取网址https pypi python org simple flask https
  • 如何从 fastapi 响应返回 PIL 图像文件列表?

    我使用 fastapi 创建了一个rest api 它将文档 pdf 作为输入并返回它的 jpeg 图像 我使用一个名为 docx2pdf 的库进行转换 from docx2pdf import convert to from fastap
  • 使用 importlib 加载已编译的模块

    从 Python 3 4 开始 模块 imp 已被弃用 使得imp load compiled modname modpath 不鼓励的加载字节码的机制 有没有一种简单的方法可以使用 importlib 加载已编译的模块 我正在向学生提供一
  • 在requirements.txt中包含.whl安装

    如何将其包含在requirements txt 文件中 对于Linux pip install http download pytorch org whl cu75 torch 0 1 12 post2 cp27 none linux x8
  • Cron 作业中的 PyAutoGUI

    我正在尝试运行一个程序 该程序可以通过 crontab 使用 Selenium 和 PyAutoGUI 在 python 3 6 中自动拉出一些选项卡 这是当 cron 不运行该程序时我尝试运行的脚本 import pyautogui im
  • 如何使用 Python 3 绕过 HTTP Error 403: Forbidden with urllib.request

    您好 不是每次都这样 但有时在尝试访问 LSE 代码时 我会收到每一个烦人的 HTTP 错误 403 禁止消息 任何人都知道我如何仅使用标准 python 模块来克服这个问题 遗憾的是没有漂亮的汤 import urllib request
  • 使用 Paramiko 进行 DSA 密钥转发?

    我正在使用 Paramiko 在远程服务器上执行 bash 脚本 在其中一些脚本中 存在与其他服务器的 ssh 连接 如果我只使用 bash 不使用 Python 我的 DSA 密钥将被第一个远程服务器上的 bash 脚本转发并使用 以连接

随机推荐

  • UWP 在打开时更改 ComboBox 位置

    我有一个ComboBox在 c XAML 中 当没有选择任何内容时PlaceHolderText显示并单击它打开它 正常行为是在中间打开它 我希望下拉菜单在顶部打开 假设我有一个ComboBox并填写数字1 100 然后我希望它显示从1 如
  • Flutter BottomNavigationBar 不适用于三个以上的项目

    我有一个问题底部导航栏在颤振中 0 6 一旦我添加超过三个 BottomNavigationBarItem小时候 栏中的按钮有白色图标 而且它们很乱 当我只使用三个或更少的物品时 一切都很好 这是我使用的小部件代码 它打破了标准 botto
  • iOS 转换十六进制值

    如何将十六进制值转换为表情符号图标 我有一个如下所示的字符串 NSString myVal 1F61E 我如何转换此文本以将其显示为表情符号字符 我发现了这个价值从这个链接 http www alanwood net unicode emo
  • 为什么 Snowsql 不打开外部浏览器?

    我想得到snowsql在我的计算机上本地工作 但我无法登录我的数据库 因为它要求我使用我的 google 帐户进行 SSO 身份验证 文档说使用 authenticator externalbrowser选项哪个should打开本地浏览器并
  • 服务器上的AJAX成功功能

    这适用于我的开发机器 但不适用于生产服务器 我正在尝试使用 ajax 更新一些 div 但它们没有更新 尽管其他部分工作正常 我在服务器上使用 IIS 6 当我使用 firebug 在服务器端调试此代码时 它不会命中我添加到 success
  • R igraph,如何使用形状和光栅的混合来绘制顶点?

    我正在尝试使用 R 和 igraph 绘制图形 混合使用形状和光栅图像作为顶点 我修改了下面的 igraph 示例来重现我的问题 有人能看出出了什么问题吗 您需要一个 png 文件来测试脚本 library png library igra
  • 修改跳过空列表并继续执行功能

    背景 以下代码稍作修改跳过空列表并继续执行函数 https stackoverflow com questions 57236878 skipping empty list and continuing with function impo
  • 如何使用 ASP.NET Core v2 在 Visual Studio 2017 中安装 font-awesome

    我正在使用 ASP NET Core v2 构建一个网页 并且想使用 font awesome 首先我要说的是我已经尝试了几件事 比如从 NPM 安装 Bower 从 NPM 安装 font awesome 从 VS 中的 Bower 包安
  • 如何将数据集写入Kafka主题?

    我正在使用 Spark 2 1 0 和 Kafka 0 9 0 我正在尝试将批处理 Spark 作业的输出推送到 kafka 该作业应该每小时运行一次 但不是流式运行 在网上寻找答案时 我只能找到 kafka 与 Spark 流的集成 而没
  • 如何抑制“SpriteKit 纹理图集生成器警告”?

    Xcode 报告以下警告 SpriteKit 纹理图集生成器警告由于输入纹理尺寸而将 images atlas 拆分为 2 个纹理图集 虽然我将来会修改我的图像以避免 SpriteKit 生成此警告 但我想使用一些 pragma 指令暂时抑
  • 点击事件中的全日历错误时间

    我正在使用角度和全日历 我有 令人惊讶的 时区问题 而且我似乎无法解决问题 如果在周视图中我点击 08 00 我打开一个模式并显示时间 我会看到 09 00 timezone Europe Brussels ignoreTimezone f
  • 枕头调整像素图像大小 - Django/Pillow

    我正在 Django 中开发一个图像上传器 图像上传并保存到磁盘后 我正在尝试调整保存的图像的大小 同时保持其纵横比 我正在使用 Pillow 进行图像处理 调整大小 当我尝试调整图像大小时出现问题 即使调整大小的图像的长宽比与原始图像的长
  • 使用 PHP 和 jQuery 生成并下载 .csv 文件

    我想生成一个 csv 文件 然后使用 AJAX 下载它 在现场 csv php 我有这个代码
  • 错误错误:未捕获(承诺):QuotaExceededError Ionic 3

    我正在使用 ionic 3 创建一个应用程序 我正在 ionic 存储中保存一个字符串 我工作得很好 但突然出现这个错误 Home ts 这是我设置字符串的地方 this storage set 123 JSON stringify dat
  • 如何跳过 x 轴上的标签?

    我已经尝试了很长一段时间来弄清楚如何跳过该图表 x 轴上的标签 例如 显示每第三个或第四个标签 我尝试将 autoSkip 和 stepSize 添加到刻度配置中 但没有任何变化 有没有一种简单的方法可以做到这一点 Edit visitor
  • 如何使用 JavaScript 检测我的浏览器版本和操作系统?

    我尝试使用下面的代码 但它只在 Chrome 和 Mozilla 中显示结果 在 IE6 中不起作用 div div
  • matplotlib 轴标签出现奇怪错误

    我对 Python 和一般编程都很陌生 所以如果我遗漏了一些明显的东西 请提前道歉 我正在尝试绘制图表并标记轴 但每次尝试标记 y 轴时都会引发异常 我在新脚本中编写了下面的代码 以确保问题不是来自模块中的其他地方 我正在使用Python
  • 未知目录的重写规则

    所以我试图获取 mod rewrite 规则来将请求重定向到带有 htaccess 文件的 php 脚本 问题是 我希望它能够工作 无论我将项目放在网络服务器上的哪个位置 htaccess 文件和 php 脚本始终位于同一文件夹中 重写本身
  • 读取 XMLStreamReader 时出错。获取故障响应

    我开发了一个应用程序 用户应该填写申请表并在最后付款 要付款 用户应在下面给出的链接中填写详细信息 Payment https k2 karnataka gov in wps portal Khajane II Scope Remittan
  • 在 Ubuntu 上安装 Python3 的 mod_wsgi

    谁能给我一套在 Ubuntu for Python 3 上安装 mod wsgi 的清晰说明 我确实使用 Python3 成功获得了 Flask 和 mod wsgi 并且短暂地感到高兴 直到我查看 Apache 的日志并意识到我遇到了这个