热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Matplotlib错误:libfreetype.6.dylib

如何解决《Matplotlib错误:libfreetype.6.dylib》经验,为你挑选了1个好方法。

我正在尝试运行以下python脚本(我正在使用Vim):

import numpy as np;
import scipy as sp;
from scipy import misc;
import matplotlib.pyplot as plt;
image = misc.imread('test_image.jpg');
np.fliplr(image);
plt.imshow(image);

当我这样做时,我得到以下内容:

Traceback (most recent call last):
  File "test.py", line 4, in 
    import matplotlib.pyplot as plt;
  File "/Library/Python/2.7/site-packages/matplotlib/pyplot.py", line 24, in 
    import matplotlib.colorbar
  File "/Library/Python/2.7/site-packages/matplotlib/colorbar.py", line 29, in 
    import matplotlib.collections as collections
  File "/Library/Python/2.7/site-packages/matplotlib/collections.py", line 23, in 
    import matplotlib.backend_bases as backend_bases
  File "/Library/Python/2.7/site-packages/matplotlib/backend_bases.py", line 50, in 
    import matplotlib.textpath as textpath
  File "/Library/Python/2.7/site-packages/matplotlib/textpath.py", line 11, in 
    import matplotlib.font_manager as font_manager
  File "/Library/Python/2.7/site-packages/matplotlib/font_manager.py", line 53, in 
    from matplotlib import ft2font
ImportError: dlopen(/Library/Python/2.7/site-packages/matplotlib/ft2font.so, 2): Library not loaded: @loader_path/../../../libfreetype.6.dylib
  Referenced from: /Library/Python/2.7/site-packages/matplotlib/ft2font.so
  Reason: image not found
shell returned 1

我尝试重新安装brew,重新安装freetype,matplotlib以及numpybrew和我的MacPorts卸载与错误没有变化.建议?

编辑:卸载MacPorts然后再重新安装brew,我现在得到此错误.

Fatal Python error: PyThreadState_Get: no current thread Command terminated

这个错误只出现在我import matplotlib身上,所以我猜测问题就在于此matplotlib.我会尝试重新安装它brew.

编辑2:我一直在尝试从这个页面无济于事,但我认为我的错误可能与那个错误有关.



1> Shan Dou..:

[MacOS X]安装后遇到同样的问题graphviz(可视化决策树).如果没有仔细隔离环境,这个新包似乎已将自己喜欢的freetype版本放入我的默认python运行时库路径中.然后在进行简单导入时import matplotlib.pyplot as plt,我收到错误消息:

ImportError: dlopen(/Users/shandou/anaconda3/lib/python3.6/site-
packages/matplotlib/ft2font.cpython-36m-darwin.so, 2): Library not 
loaded: @rpath/libfreetype.6.dylib
Referenced from: /Users/shandou/anaconda3/lib/python3.6/site- 
packages/matplotlib/ft2font.cpython-36m-darwin.so
Reason: Incompatible library version: ft2font.cpython-36m-darwin.so 
requires version 22.0.0 or later, but libfreetype.6.dylib provides 
version 21.0.0

起初,我无法理解@rpath真正指向的是什么.检查locate libfreetype并看起来像我的默认python环境,我有(1)/Users/shandou/anaconda3/lib/libfreetype.6.dylib和(2)/Users/shandou/anaconda3/pkgs/freetype-2.8.1-0

我尝试了以下两个修复程序.第一个解决了使matplotlib导入工作的迫切需要,但后来在sphinx auto doc生成中引起了问题.第二个是更清洁的修复,使两者都工作.


修复1:conda卸载然后pip安装matplotlib

上下文:我使用anaconda python发行版并使用conda作为我的主程序包管理器

扰流板警报:暂时修复了导入问题,但是在使用sphinx后我遇到了麻烦

外卖:混合pip和conda安装主要库可能会有问题

按照@Robbie Capps上面的建议,我卸载了最初安装了conda的matplotlib,并用pip重新安装了它.之后matplotlib导入工作正常,我能够继续工作,直到后来我在运行sphinx记录代码时遇到错误:

File "/Users/shandou/anaconda3/lib/python3.6/site-
packages/matplotlib/backends/backend_macosx.py", line 17, in 
from matplotlib.backends import _macosx
RuntimeError: Python is not installed as a framework. The Mac OS X 
backend will not be able to function correctly if Python is not 
installed as a framework. See the Python documentation for more 
information on installing Python as a framework on Mac OS X. Please 
either reinstall Python as a framework, or try one of the other 
backends. If you are using (Ana)Conda please install python.app and 
replace the use of 'python' with 'pythonw'. See 'Working with 
Matplotlib on OSX' in the Matplotlib FAQ for more information. 

这看起来很毛茸茸,但是如果我读得正确的话,信息的要点是:sphinx对我混合conda和pip安装不满意.

所以我最终将matplotlib恢复为conda安装.可悲的是原来的libfreetype错误立即返回,我无法做基本的matplotlib导入(darn ...)


修复2:更新位于运行时路径中的freetype库(错误消息中的@rpath)

上下文:我尝试更新freetype,libpng和matplotlib - 基本上是网络建议的任何内容

扰流器警报:如果未更新运行时路径库,我将收到有关不兼容的libfreetype的相同错误消息

[步骤1] Brew安装freetype库:

$ brew install freetype
$ brew link --overwrite freetype 

检查库版本时/usr/local/Cellar/freetype/2.9/lib/,我得到如下输出:

$ otool -L libfreetype.6.dylib | head -n 2
libfreetype.6.dylib:
/usr/local/opt/freetype/lib/libfreetype.6.dylib (compatibility version 23.0.0, current version 23.0.0)

这是版本21+,所以我们离解决问题更近了一步

[步骤2]复制/usr/local/Cellar/freetype/2.9/lib/libfreetype.6.dylib到python运行时库路径

事实证明,即使用conda更新freetype库,运行时库也不会更新.对我有用的最终解决方案是强制将较新的freetype lib复制到运行时路径:

$ cd /Users/shandou/anaconda3/lib/
$ sudo cp /usr/local/Cellar/freetype/2.9/lib/libfreetype.6.dylib .

只有这样,freetype库版本不兼容问题就消失了,matplotlib import和sphinx都很开心


底线:修复2是更清洁的方式.


推荐阅读
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • 在 Kubernetes 中,Pod 的调度通常由集群的自动调度策略决定,这些策略主要关注资源充足性和负载均衡。然而,在某些场景下,用户可能需要更精细地控制 Pod 的调度行为,例如将特定的服务(如 GitLab)部署到特定节点上,以提高性能或满足特定需求。本文深入解析了 Kubernetes 的亲和性调度机制,并探讨了多种优化策略,帮助用户实现更高效、更灵活的资源管理。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • feat: Enhances Jest Testing Capabilities with Snapshot Support ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 在List和Set集合中存储Object类型的数据元素 ... [详细]
  • 如何使用ES6语法编写Webpack配置文件? ... [详细]
  • 本指南详细介绍了在Linux环境中高效连接MySQL数据库的方法。用户可以通过安装并使用`mysql`客户端工具来实现本地连接,具体命令为:`mysql -u 用户名 -p 密码 -h 主机`。例如,使用管理员账户连接本地MySQL服务器的命令为:`mysql -u root -p pass`。此外,还提供了多种配置优化建议,以确保连接过程更加稳定和高效。 ... [详细]
  • 在重新安装Ubuntu并配置Django和PyCharm后,忘记测试MySQL连接,导致在后续配置过程中遇到错误:ERROR 2003 (HY000) - 无法连接到本地服务器 ‘127.0.0.1’ (111)。本文将详细介绍该错误的原因及解决步骤,帮助用户快速恢复MySQL服务的正常运行。我们将从检查网络配置、验证MySQL服务状态、配置防火墙规则等方面入手,提供全面的故障排除指南。 ... [详细]
  • 本文详细介绍了使用 Python 进行 MySQL 和 Redis 数据库操作的实战技巧。首先,针对 MySQL 数据库,通过 `pymysql` 模块展示了如何连接和操作数据库,包括建立连接、执行查询和更新等常见操作。接着,文章深入探讨了 Redis 的基本命令和高级功能,如键值存储、列表操作和事务处理。此外,还提供了多个实际案例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • 本文介绍了UUID(通用唯一标识符)的概念及其在JavaScript中生成Java兼容UUID的代码实现与优化技巧。UUID是一个128位的唯一标识符,广泛应用于分布式系统中以确保唯一性。文章详细探讨了如何利用JavaScript生成符合Java标准的UUID,并提供了多种优化方法,以提高生成效率和兼容性。 ... [详细]
author-avatar
w3812127
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有