记录在树莓派中部署PI-Assistant开源项目(GPT语音对话)的BUG

核心

在部署PI-Assistant(https://github.com/Lucky-183/PI-Assistant)项目中,首先要进行环境安装,官网文档中提供的安装命令如下:

pip install requests arcade RPi.GPIO pydub numpy wave sounddevice pymysql cn2an duckduckgo_search flask SpeechRecognition openai pyaudio websocket-client paho-mqtt

如果按照此命令安装,多半会出现问题。不是安装命令有问题,而是安装环境、设备、网络等等综合原因,导致一次性安装上面那么多的组件是有些困难的。

  • 解决:

1、分开一个个安装。
2、当安装出现超时,采用国内镜像安装,比如:pip install -i https://mirrors.aliyun.com/pypi/simple/ SpeechRecognition
3、安装中出现hash验证出问题,建议手动下载安装包进行安装。在https://pypi.org/网站上搜索并下载最新版本安装包。安装命令在文章下面有提到。
4、在执行python server.py过程中,还有一些需要安装的module,缺什么再单独安装什么。

(进过我的验证,按照上述方法,成功安装所有依赖并启动成功!如有疑问可以留言。)

BUG描述:

我的问题是要在树莓派上执行如下命令:

 pip install requests arcade RPi.GPIO pydub numpy wave sounddevice pymysql cn2an duckduckgo_search flask SpeechRecognition openai pyaudio websocket-client

执行过程中出现如下错误:

ERROR: Exception:
Traceback (most recent call last):File "/usr/share/python-wheels/resolvelib-0.5.4-py2.py3-none-any.whl/resolvelib/resolvers.py", line 171, in _merge_into_criterioncrit = self.state.criteria[name]
KeyError: 'speechrecognition'During handling of the above exception, another exception occurred:Traceback (most recent call last):File "/usr/share/python-wheels/urllib3-1.26.5-py2.py3-none-any.whl/urllib3/response.py", line 438, in _error_catcheryieldFile "/usr/share/python-wheels/urllib3-1.26.5-py2.py3-none-any.whl/urllib3/response.py", line 519, in readdata = self._fp.read(amt) if not fp_closed else b""File "/usr/share/python-wheels/CacheControl-0.12.6-py2.py3-none-any.whl/cachecontrol/filewrapper.py", line 62, in readdata = self.__fp.read(amt)File "/usr/lib/python3.9/http/client.py", line 458, in readn = self.readinto(b)File "/usr/lib/python3.9/http/client.py", line 502, in readinton = self.fp.readinto(b)File "/usr/lib/python3.9/socket.py", line 704, in readintoreturn self._sock.recv_into(b)File "/usr/lib/python3.9/ssl.py", line 1241, in recv_intoreturn self.read(nbytes, buffer)File "/usr/lib/python3.9/ssl.py", line 1099, in readreturn self._sslobj.read(len, buffer)
socket.timeout: The read operation timed outDuring handling of the above exception, another exception occurred:Traceback (most recent call last):File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 223, in _mainstatus = self.run(options, args)File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 180, in wrapperreturn func(self, options, args)File "/usr/lib/python3/dist-packages/pip/_internal/commands/install.py", line 346, in runrequirement_set = resolver.resolve(File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/resolver.py", line 122, in resolveself._result = resolver.resolve(File "/usr/share/python-wheels/resolvelib-0.5.4-py2.py3-none-any.whl/resolvelib/resolvers.py", line 453, in resolvestate = resolution.resolve(requirements, max_rounds=max_rounds)File "/usr/share/python-wheels/resolvelib-0.5.4-py2.py3-none-any.whl/resolvelib/resolvers.py", line 318, in resolvename, crit = self._merge_into_criterion(r, parent=None)File "/usr/share/python-wheels/resolvelib-0.5.4-py2.py3-none-any.whl/resolvelib/resolvers.py", line 173, in _merge_into_criterioncrit = Criterion.from_requirement(self._p, requirement, parent)File "/usr/share/python-wheels/resolvelib-0.5.4-py2.py3-none-any.whl/resolvelib/resolvers.py", line 82, in from_requirementif not cands:File "/usr/share/python-wheels/resolvelib-0.5.4-py2.py3-none-any.whl/resolvelib/structs.py", line 124, in __bool__return bool(self._sequence)File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 99, in __bool__return any(self)File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 239, in iter_index_candidatescandidate = self._make_candidate_from_link(File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 167, in _make_candidate_from_linkself._link_candidate_cache[link] = LinkCandidate(File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 296, in __init__super(LinkCandidate, self).__init__(File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 144, in __init__self.dist = self._prepare()File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 222, in _preparedist = self._prepare_distribution()File "/usr/lib/python3/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 307, in _prepare_distributionreturn self._factory.preparer.prepare_linked_requirement(File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 480, in prepare_linked_requirementreturn self._prepare_linked_requirement(req, parallel_builds)File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 503, in _prepare_linked_requirementlocal_file = unpack_url(File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 253, in unpack_urlfile = get_http_url(File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 130, in get_http_urlfrom_path, content_type = download(link, temp_dir.path)File "/usr/lib/python3/dist-packages/pip/_internal/network/download.py", line 163, in __call__for chunk in chunks:File "/usr/lib/python3/dist-packages/pip/_internal/cli/progress_bars.py", line 168, in iterfor x in it:File "/usr/lib/python3/dist-packages/pip/_internal/network/utils.py", line 64, in response_chunksfor chunk in response.raw.stream(File "/usr/share/python-wheels/urllib3-1.26.5-py2.py3-none-any.whl/urllib3/response.py", line 576, in streamdata = self.read(amt=amt, decode_content=decode_content)File "/usr/share/python-wheels/urllib3-1.26.5-py2.py3-none-any.whl/urllib3/response.py", line 541, in readraise IncompleteRead(self._fp_bytes_read, self.length_remaining)File "/usr/lib/python3.9/contextlib.py", line 135, in __exit__self.gen.throw(type, value, traceback)File "/usr/share/python-wheels/urllib3-1.26.5-py2.py3-none-any.whl/urllib3/response.py", line 443, in _error_catcherraise ReadTimeoutError(self._pool, None, "Read timed out.")
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out.

解决

1、升级pip的版本

这个错误是因为pip低版本中存在一点BUG,升级到最新版本就可以。

  • 升级命令(多半不行,会出现同样的错误,弃用此方法):
sudo python3 -m pip install --upgrade pip setuptools wheel
  • 安装包升级:在pip官网下载最新的安装包(此包时2024年2月2日最新版,如果时间太久了,可以自行在官网下载):
    https://files.pythonhosted.org/packages/b7/06/6b1ad0ae8f97d7a0d6f6ad640db10780578999e647a9593512ceb6f06469/pip-23.3.2.tar.gz

将上述安装包上传到树莓派中(我是在树莓派中出现的此问题),解压之后进入文件夹执行下面命令:

sudo python setup.py install
  • 安装包升级:官网自行下载。
    官网地址: https://pypi.org/ 在首页搜索框中输入pip即可。如下图所示:
    在这里插入图片描述
    之后回车进入下面界面:
    在这里插入图片描述
    如上图,选择最新版本进入即可,就会有下载的按钮,如下图:
    在这里插入图片描述

新问题1:ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE

ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.SpeechRecognition from https://www.piwheels.org/simple/speechrecognition/SpeechRecognition-3.10.1-py2.py3-none-any.whl#sha256=2e1e47088e06ecf0b45e5ca0f0e21770d2d9bead1a848d93751bc724fc868ce4:Expected sha256 2e1e47088e06ecf0b45e5ca0f0e21770d2d9bead1a848d93751bc724fc868ce4Got        e2dfc76386f2da3de7537c7cfb9ce635aaf218aad5060a05c66f2351440f6cd8 

上述问题提示,遇到的错误信息表明安装的软件包哈希值与你的要求文件中指定的哈希值不匹配。这种不一致可能是由于在没有更新要求文件中相应哈希值的情况下更新了软件包版本引起的。
解决:
1、执行命令

pip freeze > requirements.txt

2、执行命令

sudo pip uninstall -r requirements.txt -y

3、执行命令

sudo pip install -r requirements.txt

新问题2:ERROR: Could not find a version that satisfies the requirement numpy==1.19.5 (from versions: none)

ERROR: No matching distribution found for numpy==1.19.5
解决:
安装numpy命令如下(使用清华镜像安装):

pip3 install numpy scipy matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/665876.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySql 慢SQL配置,查询,处理

一.慢SQL配置相关 1.查看慢SQL是否开启 执行下面命令查看是否开启慢SQL show variables like %slow_query_log; 复制代码 OFF: 未开启ON: 2.打开慢SQL配置 执行下面的命令开启慢查询日志 set global slow_query_logON; 复制代码 3.修改慢查询阈值 前面介绍了SQL执行到达了…

一个大型系统有哪些组件构成?

一个大型系统有哪些组件构成? 系统设计往往有很多相似之处,但是细节的地方都是独一无二的。那我们可以把系统设计中这些相似的地方抽离出来作为基础组件,让系统设计变成搭积木。接下来,我会把一个系统设计中可以抽离出哪些通用的…

基于RT-Thread(RTT)的HAL库+ADC+DMA多通道采集

前言 在使用到RTT的ADC设备框架进行AD的多通道采集时,发现数据会跳变,觉得可能是没有加DMA的缘故,但RTT好像没有对应的DMA接口函数(或者我没找到),故尝试不使用RTT的ADC设备框架,直接使用HAL库…

指针详解(3)

各位少年,大家好,我是博主那一脸阳光,今天介绍 二级指针 指针数组,还有个指针数组模拟二维数组。 前言:在浩瀚的C语言编程宇宙中,指针犹如一把打开内存世界大门的独特钥匙,它不仅是理解程序运行…

实时聊天系统

这个系统可以用于网站的即时通讯,比如客服系统、在线社区等。这个功能不仅对用户友好,而且也是检验技术实现能力的一个很好的案例。 ### 功能概述 该系统允许用户在网站上实时发送和接收消息。为了保持实时性,我们将使用PHP进行服务器端的逻…

React Hooks 学习笔记

1.useState() 实现对页面数据的存储,当数据改变时候,自动触发render函数 2.useRef 用来解决两个问题: 1).是获取DOM元素或子组件的实例对象 2).存储渲染周期之间共享的数据 3.useEffect 4.useLayoutEffect 5…

CUDA Cpp正电子发射断层扫描仪校准和图像重建—蒙特卡洛3D伊辛模型

要点 GPU对比CPU计算正弦和:使用单CPU、使用OpenMP库和CUDACUDA并行计算:3D网格运行内核:线程块,线程线性处理3D数组,并行归约,共享内存,矩阵乘法/平铺矩阵乘法,基本线性代数子程序…

Javaweb之SpringBootWeb案例之 @ConfigurationProperties的详细解析

4.3 ConfigurationProperties 讲解完了yml配置文件之后,最后再来介绍一个注解ConfigurationProperties。在介绍注解之前,我们先来看一个场景,分析下代码当中可能存在的问题: 我们在application.properties或者application.yml中配…

图论练习2

内容:路径计数DP,差分约束 最短路计数 题目大意 给一个个点条边的无向无权图,问从出发到其他每个点的最短路有多少条有自环和重边,对答案 解题思路 设边权为1,跑最短路 表示的路径数自环和重边不影…

WPS Office18.7软件日常更新

【应用名称】:WPS Office 【适用平台】:#Android 【软件标签】:#WPS 【应用版本】:18.6.1➡18.7 【应用大小】:160MB 【软件说明】:软件日常更新。WPS Office是使用人数最多的移动办公软件。独有手机阅读模…

正点原子--STM32定时器学习笔记(1)

这部分是笔者对基本定时器的理论知识进行学习与总结!,主要记录自己在学习过程中遇到的重难点,其他一些基础点就一笔带过了! 1. 定时器概述 1.1 软件定时原理 使用纯软件(CPU死等)的方式实现定时&#xf…

GetBuffer() 与 ReleaseBuffer() 使用详解

GetBuffer() 与 ReleaseBuffer() 使用详解 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天,我们将深入研究在编程中常用的GetBuffer()与ReleaseBuff…

机器学习_15_贝叶斯算法

文章目录 1 贝叶斯定理相关公式2 朴素贝叶斯算法2.1 朴素贝叶斯算法推导2.2 朴素贝叶斯算法流程 3 高斯朴素贝叶斯4 伯努利朴素贝叶斯5 多项式朴素贝叶斯6 贝叶斯网络6.1 最简单的一个贝叶斯网络6.2 全连接贝叶斯网络6.3 “正常”贝叶斯网络6.4 实际贝叶斯网络:判断…

算法学习——华为机考题库5(HJ31 - HJ35)

算法学习——华为机考题库5(HJ31 - HJ35) HJ31 单词倒排 描述 对字符串中的所有单词进行倒排。 说明: 1、构成单词的字符只有26个大写或小写英文字母; 2、非构成单词的字符均视为单词间隔符; 3、要求倒排后的单…

LeAPI 后端接口开发 - 发布、下线接口

一、上线接口(仅管理员) 1. 校验请求参数 2. 判断(测试)接口是否可以调用 引入调用接口的客户端(自己写的 SDK)注入客户端实例调用接口 3. 修改数据库中接口的状态 /*** 上线(发布&#xff…

机器视觉培训机构的保就业可信吗?就业不了退款是真的吗?

显然是不可能的。某些机器视觉培训机构为了取信于人,请来保险公司再出一份保单,对学员未来的就业薪资承保,如在某机器视觉培训机构培训后就业薪资低于12000元,由某保险公司理赔学员全部培训费用。这种取信于人的操作,我…

爬虫(二)

1.同步获取短视频 1.只要播放地址对Json数据解析,先把列表找出: 2.只想要所有的播放地址,通过列表表达式循环遍历这个列表拿到每个对象,再从一个个对象里面找到Video,再从Video里面找到播放地址(play_addr),再从播放地址找到播放…

动态内存管理 智能指针 shared_ptr、unique_ptr、weak_ptr + 定制删除器

动态内存管理常出现的两种问题: 1.忘记释放内存,造成内存泄漏 2.这块内存还有其他指针指向的情况下,就释放了它,会产生引用非法内存的指针,例如 如果类中有属性指向堆区,做赋值操作时会出现浅拷贝的问题 内存泄漏分…

在jetbrains IDEA/Pycharm/Android Studio中安装官方rust插件,开始rust编程

在idea插件市场搜索rust:JetBrains Marketplace ,就可以找到rust插件: jetbrains官方rust插件地址:[Deprecated] Rust - IntelliJ IDEs Plugin | Marketplace 直接在idea中搜索rust好像是搜不到的: 需要在这个插件市场…

【数据结构】二叉树链式结构的实现

简单不先于复杂,而是在复杂之后。 文章目录 1. 二叉树链式结构的实现1.1 前置说明1.2 二叉树的遍历1.2.1 前序、中序以及后序遍历1.2.2 层序遍历 1.3 节点个数以及高度等1.4 二叉树基础oj练习1.5 二叉树的创建和销毁 1. 二叉树链式结构的实现 1.1 前置说明 在学习二…