OSError: dlopen() failed to load a library: cairo / cairo-2 / cairo-gobject-2 / cairo.so.2
解决办法
下载 gtk3-runtime-3.24.29-2021-04-29-ts-win64.exe后安装。
记得勾选添加bin目录到环境变量:
这样就不会缺失dll了,当然可能需要重启IDE才能生效,因为添加了新的PATH环境变量。
其它
如果你还是报同样的错那么现在往下看,来深入理解一下为什么这样。
这也是我解决的问题的过程。
首先我们找到报错库的位置。这里可以使用pip show cairosvg:

其中的Location就是包的安装路径,进入库目录(cairocffi)后,打开其中的 __init__.py 文件:

可以看到报错的位置是第 35 行代码,而调用这个函数的位置就是第 38 行代码,而这个函数的逻辑就是查找 dll, 输入是4个文名,内部循环 lib 与名字进行拼接也就是形成2个名字,所以一共是8个文件名,只要有一个dll找到并调用成功就会 return ,那么就不会报错(其实只要有一个调用成功就可以运行)。所以我们可以在 29-30 行代码之间插入一个输出 print(path) 看看是否找到了我们之前安装 gtk3-runtime-3.24.29-2021-04-29-ts-win64.exe 中的 dll 文件,而我当时就发现其调用到的是我之前安装的 Tesseract-OCR,由于我在 Tesseract-OCR 也添加了 PATH 环境变量,并且是在 gtk3-runtime-3.24.29-2021-04-29-ts-win64.exe 的 PATH 环境变量前面,根据环境变量调用的就近原则,那么就会导致 调用到 Tesseract-OCR 中的 dll,从而报错,所以解决办法也很简单,将 gtk3-runtime-3.24.29-2021-04-29-ts-win64.exe 的 PATH 环境变量提前就可以了。
OSError: dlopen() failed to load a library: cairo / cairo-2 / cairo-gobject-2 / cairo.so.2的更多相关文章
- Failed to load JavaHL Library.
以前使用的电脑是32位的,安装的svn可以正常使用,但是现在的电脑室64位的,安装好svn后,把项目提交到svn的过程中,总是弹出来一个错误的对话框: Failed to load JavaHL Li ...
- 启动Eclipse弹出:Failed to load JavaHL Library 错误框的解决办法
一.问题背景描述: eclipse安装完svn插件以后,在启动时出现:Failed to load JavaHL Library. These are the errors that were en ...
- Ubuntu14.04下安装ZendStudio10.6.1+SVN出现Failed to load JavaHL Library
Subclipse不能正常工作,打开后报错: Failed to load JavaHL Library. These are the errors that were encountered: no ...
- mac eclipse svn subeclipse: Failed to load JavaHL Library.
Failed to load JavaHL Library. These are the errors that were encountered: no libsvnjavahl-1 in java ...
- Selenium IE6 Failed to load the library from temp directory: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\IED1C1.tmp
项目中用到了使用Selenium打开IE浏览器.前期都是基于IE8+.Firefox.Chrome.项目后期开始现场测试时发现大部分客户还都是使用的Windows XP + IE6.结果可想而知,直接 ...
- Failed to load JavaHL Library. These are the errors that were encountered:
问题: Failed to load JavaHL Library.These are the errors that were encountered:no msvcp100 in java.lib ...
- CentOS SVN Failed to load JavaHL Library
在CentOS 6上的eclipse安装了svbclipse插件后,svn不能使用,并且第一次使用的时候还出现下面错误窗口提示 Failed to load JavaHL Library. These ...
- Failed to load JavaHL Library. SVN
以前使用的电脑是32位的,安装的svn可以正常使用,但是现在的电脑室64位的,安装好svn后,把项目提交到svn的过程中,总是弹出来一个错误的对话框: Failed to load JavaHL Li ...
- SVN错误:Failed to load JavaHL Library
环境:jdk1.7(64bit),eclipse4.4(64bit),SVN1.10.3 问题:在利用subclipse同步资源时,报出错误提示 Failed to load JavaHL Libra ...
- 2018.12.31 Failed to load JavaHL Library.错误解决
创建项目出现下面的错误 Failed to load JavaHL Library. These are the errors that were encountered: no libsvnjava ...
随机推荐
- Java学习笔记:基本输入、输出数据操作实例分析
Java学习笔记:基本输入.输出数据操作.分享给大家供大家参考,具体如下: 相关内容: 输出数据: print println printf 输入数据: Scanner 输出数据: JAVA中在屏幕中 ...
- 1 Java内存区域管理
目录 1 关于自动内存管理 2 运行时数据区域 2.1 程序计数器 2.2 虚拟机栈 2.2.1 局部变量表 2.2.2 操作数栈 2.3 本地方法栈 2.4 堆 2.5 方法区 2.5.1 运行时常 ...
- kali2020.1修改root密码,以最高权限登录系统
普通用户权限登录系统 sodu su切换为root权限 passwd root 按提示输入密码 再次输入密码 更新密码 右上角点切换用户 root/xxxx 更改成功,下面公布操图片
- 【项目实战】Kaggle泰坦尼克号的幸存者预测
前言 这是学习视频中留下来的一个作业,我决定根据大佬的步骤来一步一步完成整个项目,项目的下载地址如下:https://www.kaggle.com/c/titanic/data 大佬的传送门:http ...
- 关于使用kuboard安装其自带的监控应用的注意事项
在安装过程中若想监控kube-controller-manager和kube-scheduler,需要按步骤中的如下说明操作 在这里,所有master节点的这俩文件都需要修改,不用apply,等一分钟 ...
- Kibana:Canvas入门
- 使用KubeOperator安装k8s集群后,节点主机yaml文件路径
[root@k8s-develop-master-1 kubernetes]# cd /etc/kubernetes [root@k8s-develop-master-1 kubernetes]# l ...
- Logstash:如何处理 Logstash pipeline 错误信息
转载自:https://elasticstack.blog.csdn.net/article/details/114290663 在我们使用 Logstash 的时候经常会出现一些错误.比如当我们使用 ...
- C++ 自学笔记 对象的初始化
数组的初始化: 在 C++中 struct ≈ Class:struct里面可以有函数. 默认构造函数: 没有参数的构造函数就是默认构造函数
- MatrixOne Linux 编译文档
MatrixOne Linux 编译文档 编译环境 硬件环境 操作系统 内存 CPU 磁盘 Windows环境下的Linux虚拟机 Linux version 3.10.0-1160.el7.x86_ ...