首页 > 编程问答 >Python升级后找不到uwsgi模块

Python升级后找不到uwsgi模块

时间:2024-09-25 04:09:05浏览次数:1  
标签:python uwsgi

我的家庭服务器上运行着 Flask/UWSGI 应用程序。最近的 Ubuntu 升级删除了 Python 3.10 并安装了 Python 3.12。我已经创建了一个新的 venv 并安装了该应用程序,但它不再运行。在 UWSGI 日志中,它显示:

ModuleNotFoundError: No module named 'wsgi'

我的应用程序称为 sieve,工作目录是 /usr/share/sieve。我正在使用一个 ini 文件 /usr/share/sieve/sieve.ini,它看起来像这样:

[uwsgi]
module = wsgi
callable = app

master = true
processes = 5 

socket = /usr/share/sieve/sieve.sock
chmod-socket = 660
vacuum = true

die-on-term = true
logto = /usr/share/sieve/sieve.log
logfile-chown = jon:www-data
log-date = [%%Y-%%m-%%d %%H:%%M:%%S]

我也尝试过 module=sieve.wsgi module=wsgi:app 如其他地方建议的那样。

应用程序位于sieve 子目录和 /usr/share/sieve/sieve/wsgi.py 如下所示:

#!/usr/bin/env python
from run_app import app

if __name__ == '__main__':
    app.run(debug=True)

服务定义包括这些行:

WorkingDirectory=/usr/share/sieve
Environment="PATH=$PATH:/usr/share/sieve/venv/bin"
ExecStart=/usr/share/sieve/venv/bin/uwsgi --ini sieve.ini --enable-threads

我不确定自上次工作以来发生了什么变化,但进一步查看向上查看日志,此设置工作正常:

[2024-08-27 21:32:30] - *** Starting uWSGI 2.0.21 (64bit) on [Tue Aug 27 21:32:30 2024] ***
[2024-08-27 21:32:30] - compiled with version: 11.3.0 on 20 November 2022 14:54:48
[2024-08-27 21:32:30] - os: Linux-6.8.0-40-generic #40~22.04.3-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 30
 17:30:19 UTC 2

当前版本不起作用(具有相同的站点代码和配置)。

[2024-09-24 20:33:49] - *** Starting uWSGI 2.0.27 (64bit) on [Tue Sep 24 20:33:49 2024] ***
[2024-09-24 20:33:49] - compiled with version: 13.2.0 on 24 September 2024 18:04:08
[2024-09-24 20:33:49] - os: Linux-6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024

为什么我的应用程序停止工作以及我需要做什么才能使 UWSGI 找到模块再次?


问题在于,的 uWSGI 配置文件在错误的位置查找 wsgi 模块。当指定 module = wsgi 时,uWSGI 会在当前目录下查找名为 wsgi.py 的文件,或者在 Python 路径中查找名为 wsgi 的模块。

为了解决这个问题,需要告诉 uWSGI wsgi 模块(实际上是 wsgi.py 文件)位于 sieve 模块中。

以下是需要进行的更改:

  1. 修改 uWSGI 配置文件 ( /usr/share/sieve/sieve.ini ):

将以下行:

ini module = wsgi

替换为:

ini module = sieve.wsgi:app

这个配置告诉 uWSGI 在 sieve 模块中查找名为 wsgi 的模块,并在该模块中加载名为 app 的可调用对象 (callable)。

  1. 确保虚拟环境已激活:

在启动 uWSGI 之前,请确保在的服务定义或启动脚本中激活了的虚拟环境。 这可以通过在 ExecStart 行之前添加以下内容来完成:

ExecStart=/bin/bash -c 'source /usr/share/sieve/venv/bin/activate && /usr/share/sieve/venv/bin/uwsgi --ini sieve.ini --enable-threads'

完成这些更改后,重新启动 uWSGI 服务,的 Flask 应用程序应该可以正常工作了。

其他建议:

  • 确保在新的虚拟环境中安装了所有必需的 Python 包,包括 Flask 和 uWSGI。
  • 检查 uWSGI 日志文件 ( /usr/share/sieve/sieve.log ) 以获取更详细的错误消息。

标签:python,uwsgi
From: 79020191

相关文章

  • Chameleon 模板不替换 python 变量
    我是使用FastAPI和Python的Chameleon新用户。我在模板中有以下代码片段:${ag.name}在python代码中,我有一个类定义为:classAgeGroupInfo:definit(self,名称:str,检查:str):self.name=姓名self.checked=check视图字典包含AgeGroupInfo对象的列表......
  • 如何在 Python 中获得类似 Cron 的调度程序?
    我正在寻找一个Python库,它将提供at和cron类似的功能。我很想有一个纯Python解决方案,而不是依赖于安装在盒子上的工具;这样我就可以在没有cron的机器上运行。对于那些不熟悉cron的人:您可以根据如下表达式来安排任务:02**7/usr/bin/run......
  • 我找不到一种方法让我的 python print 语句在几秒钟后自行删除
    我正在尝试制作一款基于文本的冒险游戏,我希望能够让文本自行删除。举个例子,游戏将使用print()语句打印文本,5秒后文本将被删除或对玩家隐藏。我试图找到其他人与此问题相关的问题,并且我找不到任何信息。我不知道该使用什么命令或与之相关的任何内容,请帮忙。Ivetriedtof......
  • 在 python 中可视化四元数
    我在无人机上安装了一个IMU,每0.1秒收集一次四元数数据(w,x,y,z)。现在我想将四元数数据与实际的无人机方向(视频数据)进行比较。所以我想创建某种盒子对象来显示基于四元数数据的方向。我实现了以下教程,将四元数转换为欧拉以进行可视化:https://www.youtube.com/watch?......
  • 有没有办法在 python 中获取特定的键盘输入
    我正在为学校开发一个项目,它目前有行输入(“按Enter继续”),它可以工作,但只要用户按Enter键程序继续,输入是什么并不重要,而且我我希望它仅在按下特定键时才起作用。我查了一下,曾经有一个键盘模块,但由于某种莫名其妙的原因它被删除了,那么还有其他方式获取输入吗?你绝对可以......
  • python+flask计算机毕业设计基于微信小程序的法律问题咨询系统设计与实现(程序+开题+论
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网的飞速发展和智能手机的普及,人们获取信息和解决问题的途径日益多样化。在法律服务领域,传统的线下咨询方式已难以满足公众日益增......
  • python+flask计算机毕业设计基于人脸识别的医疗保险系统的设计与实现(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着科技的飞速发展和人口老龄化的加剧,医疗保险系统面临着前所未有的挑战与机遇。传统医疗保险管理方式依赖于人工审核与纸质记录,不仅效率......
  • python+flask计算机毕业设计基于微信小程序的河南省美食分享平台(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在移动互联网时代,智能手机和社交媒体已成为人们日常生活不可或缺的一部分。微信小程序作为腾讯推出的一种轻量级应用形态,凭借其无需安装、......
  • python+flask计算机毕业设计基于微信小程序的网络文学管理平台(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网的迅猛发展,网络文学已成为当代文化生活中不可或缺的一部分,它不仅丰富了人们的阅读体验,还促进了文学创作的多元化与普及化。然而......
  • Python不同方式正倒序遍历的时间开销
    fromtimeitimporttimeitli=[iforiinrange(1000000)]deffor_loop(n):#使用for直接遍历ret=0foriinli:ret=li[i]deffor_loop_enumerate(n):#使用enumerate进行遍历ret=0foridx,iinenumerate(li):re......