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 ...
随机推荐
- Windows优先使用IPv4
当前主流的Windows系统(从Windows 7之后)都会同时使用ipv6和ipv4,并且优先使用ipv6.当你ping另一个服务器的时候就能看到,优先使用的是ipv6进行通信.由于能够在DNS中解 ...
- Exchange如何将邮件转发给外部邮件地址
Exchange如何将邮件转发给外部邮件地址 最近遇到一个需求.一位已经离职的员工需要将后续的邮件转发给他自己的私人邮箱.安全,行政的审核通过后,这个问题就到了技术部门了. Exchange可以很方便 ...
- WinUI 3 踩坑记:从创建项目到发布
本文是 WinUI 3 踩坑记 的一部分,该系列发布于 GitHub@Scighost/WinUI3Keng,若内容出现冲突以 GitHub 上的为准. 创建项目 现在 WinUI 3 的入门体验比刚 ...
- Elastic:为Elastic Docker部署设置安全
文章转载自:https://elasticstack.blog.csdn.net/article/details/105710973 创建docker-compose.yml 在之前的教程中,那里使用 ...
- vivo 公司 Kubernetes 集群 Ingress 网关实践
文章转载自:https://mp.weixin.qq.com/s/qPqrJ3un1peeWgG9xO2m-Q 背景 vivo 人工智能计算平台小组从 2018 年底开始建设 AI 计算平台至今,已经 ...
- 使用Recoding Rules优化性能
通过PromQL可以实时对Prometheus中采集到的样本数据进行查询,聚合以及其它各种运算操作.而在某些PromQL较为复杂且计算量较大时,直接使用PromQL可能会导致Prometheus响应超 ...
- CentOS 7 firewalld 配置详解
1.在CentOS 7里有几种防火墙共存:firewalld.iptables.ebtables. 默认是使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables ...
- PAT (Basic Level) Practice (中文)1015 德才论 分数 25
宋代史学家司马光在<资治通鉴>中有一段著名的"德才论":"是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不得圣人,君子 ...
- 洛谷P3870 [TJOI2009] 开关 (线段树)
简单的省选题...... 打异或标记即可. 1 #include<bits/stdc++.h> 2 const int N=2e5+10; 3 using namespace std; 4 ...
- GitLab私有化部署 - CI/CD - 持续集成/交付/部署 - 源代码托管 & 自动化部署
预期目标 源代码管理 借助GitLab实现源代码托管,私有化部署版本,创建项目,创建用户组,分配权限,项目的签入/牵出等. 自动化部署 源代码产生变更时(如签入),自动化编译并发布到指定服务器中部署, ...