解决不联网环境pip安装librosa、numba、llvmlite报错和版本兼容问题

news2024/11/28 4:43:18

项目场景:

项目是需要在内网不联网环境部署GitHub上一个有关音频、视频处理的深度学习Python工程,因此许多包需要下载好wheel包或tar包后在内网环境安装。

这个过程遇到了许多兼容性问题引起的报错。Python版本与librosa、numba、llvmlite版本兼容问题报错,系统未安装ffmpeg报错,以及安装ffmpeg过程报错。

GitHub项目是基于Python3.6的,环境需求如下:

librosa==0.7.0
numpy==1.17.1
opencv-contrib-python>=4.2.0.34
opencv-python==4.1.0.25
torch==1.1.0
torchvision==0.3.0
tqdm==4.45.0
numba==0.48

系统需要安装ffmpeg:
sudo apt-get install ffmpeg

(注:如果外网有条件,打Docker镜像的方式比离线一个个安装包更方便)


问题描述

本人尝试匹配了许多版本,其中numba与llvmlite版本依赖性比较强,基本上是一一对应的,尝试过程中匹配了很多包,过程艰辛。
packages
接下来一一介绍遇到的报错问题和解决方案。


解决报错 ModuleNotFoundError: No module named ‘numba.decorators’

安装高版本的numba,如0.57.0版本的numba,会出现如上报错,可以卸载numba后,安装指定numba是0.48.0版本,注意,此时对应的llvmlite的版本是0.31.0(install numba的时候会提示Collecting llvmlite<0.32.0,>=0.31.0dev0 (from numba==0.48.0)
)。

解决方案一:

pip uninstall numba
pip install numba==0.48.0

此方案适用于Python3.6、3.7、3.8
如果有指定版本不存在也会出现如下报错:

ERROR: Ignored the following versions that require a different python version: 0.52.0 Requires-Python >=3.6,<3.9; 0.52.0rc3 Requires-Python >=3.6,<3.9; 0.53.0 Requires-Python >=3.6,<3.10; 0.53.0rc1.post1 Requires-Python >=3.6,<3.10; 0.53.0rc2 Requires-Python >=3.6,<3.10; 0.53.0rc3 Requires-Python >=3.6,<3.10; 0.53.1 Requires-Python >=3.6,<3.10; 0.54.0 Requires-Python >=3.7,<3.10; 0.54.0rc2 Requires-Python >=3.7,<3.10; 0.54.0rc3 Requires-Python >=3.7,<3.10; 0.54.1 Requires-Python >=3.7,<3.10
ERROR: Could not find a version that satisfies the requirement numba==0.53.0 (from versions: 0.1, 0.2, 0.3, 0.5.0, 0.6.0, 0.7.0, 0.7.1, 0.7.2, 0.8.0, 0.8.1, 0.9.0, 0.10.0, 0.10.1, 0.11.0, 0.12.0, 0.12.1, 0.12.2, 0.13.0, 0.13.2, 0.13.3, 0.13.4, 0.14.0, 0.15.1, 0.16.0, 0.17.0, 0.18.1, 0.18.2, 0.19.1, 0.19.2, 0.20.0, 0.21.0, 0.22.0, 0.22.1, 0.23.0, 0.23.1, 0.24.0, 0.25.0, 0.26.0, 0.27.0, 0.28.1, 0.29.0, 0.30.0, 0.30.1, 0.31.0, 0.32.0, 0.33.0, 0.34.0, 0.35.0, 0.36.1, 0.36.2, 0.37.0, 0.38.0, 0.38.1, 0.39.0, 0.40.0, 0.40.1, 0.41.0, 0.42.0, 0.42.1, 0.43.0, 0.43.1, 0.44.0, 0.44.1, 0.45.0, 0.45.1, 0.46.0, 0.47.0, 0.48.0, 0.49.0, 0.49.1rc1, 0.49.1, 0.50.0rc1, 0.50.0, 0.50.1, 0.51.0rc1, 0.51.0, 0.51.1, 0.51.2, 0.52.0rc2, 0.55.0rc1, 0.55.0, 0.55.1, 0.55.2, 0.56.0rc1, 0.56.0, 0.56.2, 0.56.3, 0.56.4, 0.57.0rc1, 0.57.0)
ERROR: No matching distribution found for numba==0.53.0

解决方案二:修改librosa的库中的decorators.py文件,注释掉相关部分。

当使用Python3.10时,下载的librosa版本为0.7.2,numba版本为0.57.0,对应的llvmlite版本为0.40.0,此时librosa对应的依赖包版本如下:

Requirement already satisfied: librosa in /usr/local/lib/python3.10/dist-packages (0.7.2)
Requirement already satisfied: audioread>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from librosa) (3.0.0)
Requirement already satisfied: decorator>=3.0.0 in /usr/local/lib/python3.10/dist-packages (from librosa) (5.1.1)
Requirement already satisfied: joblib>=0.12 in /usr/local/lib/python3.10/dist-packages (from librosa) (1.2.0)
Requirement already satisfied: numba>=0.43.0 in /usr/local/lib/python3.10/dist-packages (from librosa) (0.57.0)
Requirement already satisfied: numpy>=1.15.0 in /usr/local/lib/python3.10/dist-packages (from librosa) (1.24.3)
Requirement already satisfied: resampy>=0.2.2 in /usr/local/lib/python3.10/dist-packages (from librosa) (0.4.2)
Requirement already satisfied: scikit-learn!=0.19.0,>=0.14.0 in /usr/local/lib/python3.10/dist-packages (from librosa) (1.2.2)
Requirement already satisfied: scipy>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from librosa) (1.10.1)
Requirement already satisfied: six>=1.3 in /usr/local/lib/python3.10/dist-packages (from librosa) (1.16.0)
Requirement already satisfied: soundfile>=0.9.0 in /usr/lib/python3/dist-packages (from librosa) (0.10.3.post1)
Requirement already satisfied: llvmlite<0.41,>=0.40.0dev0 in /usr/local/lib/python3.10/dist-packages (from numba>=0.43.0->librosa) (0.40.0)
Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn!=0.19.0,>=0.14.0->librosa) (3.1.0)

到librosa所在位置,可通过 pip install librosa 查看所在位置
我的安装位置在:

/usr/local/lib/python3.10/dist-packages

打开 /usr/local/lib/python3.10/dist-packages/librosa/util/decorators.py
将如下部分注释掉

import warnings
from decorator import decorator
import six
# 下面一行注释掉
# from numba.decorators import jit as optional_jit

# 下面一行去掉optional_jit
#__all__ = ['moved', 'deprecated', 'optional_jit']
__all__ = ['moved', 'deprecated']

再运行就没有如上报错了。参考:
No module named numba.decorators错误解决


解决Python报错AttributeError: module ‘llvmlite.binding.ffi’ has no attribute ‘register_lock_callback’

出现这种报错的情况是Python3.7运行程序,执行到 import numba 时报错:AttributeError: module ‘llvmlite.binding.ffi’ has no attribute ‘register_lock_callback’,原因是llvmlite的版本低于0.36.0,

解决方案一:安装0.36.0以上版本的llvmlite。

以下是Python3.7可行的安装包版本:

librosa==0.7.0
numba==0.53.0
llvmlite==0.36.0

这种方案,numba版本不是0.48.0了,可能会出现其他问题。
参考:运行python报错AttributeError: module ‘llvmlite.binding.ffi’ has no attribute ‘register_lock_callback’

解决方案二:借用0.36.0版本的llvmlite中的binding文件夹

当你想使用0.48.0版本的numba,而与之匹配的0.31.0版本的llvmlite没有llvmlite.binding.ffi,你可以先安装0.36.0版本的llvmlite,在你的site-packages路径中找到llvmlite文件夹,将里面的binding文件夹复制下来,卸载0.36.0版本的llvmlite,重新安装0.31.0版本的llvmlite,并将上面binding文件夹放入llvmlite文件夹中。
(此方法是在尝试中发现的,简单粗暴,不是很推荐使用)


解决import librosa报错问题

多是版本过低,如librosa版本是0.6.0版本的,推荐安装0.7.0或0.7.2以上版本的librosa。安装librosa需要先安装llvmlite,再安装numba,再安装librosa。


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

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

相关文章

小狗避障-第14届蓝桥杯省赛Scratch中级组真题第4题

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第139讲。 小狗避障&#xff0c;本题是2023年5月7日举行的第14届蓝桥杯省赛Scratch图形化编程中级组编程第4题&#xf…

从代码审计的角度分析 Ruoyi v4.7.6 的任意文件下载漏洞

前言 Ruoyi 的 v4.7.6 是 2022 年 12 月 16 日发布的一个版本&#xff0c;而任意文件下载漏洞实际上 12 月底的时候就已经爆出了&#xff0c;也陆续有一些文章在写这个漏洞&#xff0c;但是 Ruoyi 一直没有更新修复。 上月中旬&#xff08;2023 年 5 月&#xff09;&#xff0c…

内网渗透(八十四)之ADCS配置启用基于SSL的LDAP(LDAPS)

ADCS配置启用基于SSL的LDAP(LDAPS) 打开AD CS,选择证书颁发机构 选择证书模板,右键管理 选择Kerberos身份验证,右键 复制模板 然后会有一个Kerberos身份验证的副本,右键更改名称,更改为LDAPS 选择LDAPS,右键属性 设置模板属性,请求处理——>允许导出私钥(O) 创建证书…

最快实现一个自己的扫地机

​ 作者&#xff1a;良知犹存 转载授权以及围观&#xff1a;欢迎关注微信公众号&#xff1a;羽林君 或者添加作者个人微信&#xff1a;become_me 扫地机介绍 扫地机器人行业本质是技术驱动型行业&#xff0c;产品围绕导航系统的升级成为行业发展的主旋律。按功能划分&a…

【武汉万象奥科】瑞芯微RK3568芯片

▎产品展示 RK3568核心板是基于Rockchip的RK3568设计的一款高性能核心板。该处理器集成了最新的高性能CPU、GPU&#xff0c;并拥有丰富的接口&#xff0c;非常适用于工业自动化控制、人机界面、中小型医疗分析器、电力等多种行业应用。 ▎RK3568产品特点 ▎高性能处理器 ○ 采用…

linuxOPS基础_vmware虚拟机安装及介绍

虚拟机概念 什么是虚拟机&#xff1f; 虚拟机&#xff0c;有些时候想模拟出一个真实的电脑环境&#xff0c;碍于使用真机安装代价太大&#xff0c;因此而诞生的一款可以模拟操作系统运行的软件。 虚拟机目前有2 个比较有名的产品&#xff1a;vmware 出品的vmware workstatio…

pix2pixHD---model---辨别器

搭建完生成器后搭建辨别器。 首先看辨别器的输入&#xff1a;分别是标签和生成器输出。 在训练时候&#xff0c;辨别器通道输入等于生成器的输出加上conditional即标签和实例的拼接。通道相加就是图片concat。 如果使用实例图片&#xff0c;那么辨别器输入通道数加1&#xff…

《Spring Guides系列学习》guide21 - guide25

要想全面快速学习Spring的内容&#xff0c;最好的方法肯定是先去Spring官网去查阅文档&#xff0c;在Spring官网中找到了适合新手了解的官网Guides&#xff0c;一共68篇&#xff0c;打算全部过一遍&#xff0c;能尽量全面的了解Spring框架的每个特性和功能。 接着上篇看过的gu…

这款高性价比商用笔记本值得入手

随话说&#xff1a;工欲善其事&#xff0c;必先利其器。 对于打工人的我来说&#xff0c;办公一定要有一款适合的笔记本&#xff0c;否则真的是事倍功半。近日入手了戴尔Latitude 3330这款笔记本&#xff0c;通过使用体验&#xff0c;感觉真是一款高性价比的笔记本了。 接下来…

分布式事务解决方案Seata 整合 Spring Cloud + Nacos

1. 简介 Seata 是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式&#xff0c;为用户打造一站式的分布式解决方案。 2. Docker 安装 Seata 2.1 下载镜像 docker pull seataio/se…

电子合同网页预览盖章效果实现

电子合同在现在应用越来越广&#xff0c;需求也就随之产生。 本篇文章主要记录两种网页盖章效果实现方式&#xff0c;自己记录一下&#xff0c; 也给需要的人提供一点思路和帮助。 效果 JqueryCSS实现 原理 通过定位盖章位置&#xff0c;之后操作图片悬浮到盖章位置 1.设置…

浙江大学计算机考研分析

关注我们的微信公众号 姚哥计算机考研 更多详情欢迎咨询 浙江大学&#xff08;A&#xff09;考研难度&#xff08;☆☆☆☆☆☆&#xff09; 浙江大学计算机科学与技术学院成立于1978年&#xff0c;始终秉承“人为本&#xff0c;和为贵&#xff0c;变则通”的文化理念&#…

SecureCRT日志设置每行时间

SecureCRT日志设置时针对每个会话单独设置的 下图两个串口打印的地方&#xff0c;每个是一个会话。 打开【选项】 按照如下选项进行配置&#xff1a; 每次断开重新链接都会重新存一个日志文件&#xff0c;文件生成时间以秒为最小单位。 并且每行都有时间记录。 一般使用”年…

聊聊得物数据研发优化策略 | 精选

1.前言 在离线数据研发中&#xff0c;随着业务的快速发展以及业务复杂度的不断提高&#xff0c;数据量的不断增长&#xff0c;尤其得物这种业务的高速增长&#xff0c;必然带来数据逻辑复杂度的提升&#xff0c;数据量越大&#xff0c;复杂度越高&#xff0c;对任务的性能的要…

【嵌入式Linux】源码菜单配置 | 编译 | 菜单配置的实现 | 源码编译的实现

源码配置编译 源码配置编译,要把中间各个环节都理清楚 厂商把自己增加的东西专门放了个文件独立&#xff0c;方便开发者发现变化 1.菜单配置 移植的第一步&#xff0c;就是选配&#xff0c;通过make menuconfig图形化界面选配 //载入配置 $ make ARCHarm64 tegra_defconfi…

JVM(HotSpot)

1、 类加载机制&#xff1a; 引导类&#xff08;Bootstrap &#xff09;加载器&#xff1a;负责加载支撑JVM运行的位于JRE的lib目录下的核心类库&#xff0c;比如 rt.jar、charsets.jar等扩展类&#xff08;Extension &#xff09;加载器&#xff1a;负责加载支撑JVM运行的位于…

真题详解(哈希表)-软件设计(八十五)

真题详解&#xff08;树的结点&#xff09;-软件设计&#xff08;八十四)https://blog.csdn.net/ke1ying/article/details/130869095 要求邮件加密方式传输&#xff0c;邮件最大附件内容可达500MB&#xff0c;发送者不可抵赖&#xff0c;若邮件被第三方截获&#xff0c;第三方…

有哪些pdf转word的免费软件?这个办法值得一试

在日常工作和学习中&#xff0c;我们经常需要将PDF文件转换为Word文档。尤其是在需要编辑PDF文档中的内容时&#xff0c;将其转换为Word文档是非常必要的。但是&#xff0c;很多人不知道该如何快速完成这项任务。在本文中&#xff0c;我们将介绍一些简单的转换方式&#xff0c;…

智能排班系统 【管理系统功能、操作说明——上篇】

文章目录 功能设计共有功能系统管理员企业管理员门店管理员门店员工 页面与功能展示用户登录企业注册系统首页系统管理员首页企业管理员首页门店管理员首页 个人中心菜单管理日志管理登录日志 功能设计 不同的角色关注的任务和功能不同&#xff0c;针对不同的角色&#xff0c;…

树莓派485转USB串口调试教程

步骤1&#xff1a;接线方式&#xff1a;485转USB 注意接线口是否对应&#xff1a;A1B1 步骤2&#xff1a;查看串口配置—映射关系是否正确 命令&#xff1a;ls -l /dev serial0即GPIO映射的串口&#xff0c;默认是ttyS0&#xff0c;即mini串口 serial1即板载蓝牙映射的串口&am…