使用pyenv虚拟环境调用msno.matrix()报错的问题求助
解决pyenv环境下missingno调用msno.matrix()报"grid_b is not recognized"错误
问题根源
这个错误源于missingno与matplotlib的版本不兼容:旧版missingno使用了matplotlib已移除的grid_b参数,pyenv环境中安装的matplotlib版本较新或missingno版本未适配最新matplotlib;而conda环境默认的包版本组合刚好兼容。
解决方案
对齐conda环境的包版本
- 在正常工作的conda环境中执行命令,查看兼容版本:
pip show missingno matplotlib - 在pyenv目标虚拟环境中安装完全相同版本的两个包:
pip install missingno==[conda中的版本号] matplotlib==[conda中的版本号]
- 在正常工作的conda环境中执行命令,查看兼容版本:
升级missingno到最新兼容版本
卸载旧版并安装最新版missingno,新版本已修复matplotlib参数兼容问题:pip uninstall -y missingno pip install --upgrade missingno修复pyenv环境的Python依赖完整性
若上述方法无效,可能是pyenv编译Python时缺少系统依赖,导致matplotlib安装不完整:- 安装系统依赖(以Ubuntu/Debian为例):
sudo apt-get install libpng-dev libfreetype6-dev pkg-config - 卸载并重新编译目标Python版本:
pyenv uninstall [你的Python版本,比如3.9.13] pyenv install [你的Python版本] - 重新创建虚拟环境并安装missingno和matplotlib
- 安装系统依赖(以Ubuntu/Debian为例):
内容的提问来源于stack exchange,提问作者Ruben Miranda
相关产品推荐
相关产品推荐

