您的位置:首页 > 文旅 > 旅游 > 以下是b2b电子商务网站_国际军事新闻联播_windows优化大师卸载不了_重庆森林电影完整版

以下是b2b电子商务网站_国际军事新闻联播_windows优化大师卸载不了_重庆森林电影完整版

2025/5/11 0:31:00 来源:https://blog.csdn.net/gaogzhen/article/details/147013411  浏览:    关键词:以下是b2b电子商务网站_国际军事新闻联播_windows优化大师卸载不了_重庆森林电影完整版
以下是b2b电子商务网站_国际军事新闻联播_windows优化大师卸载不了_重庆森林电影完整版

文章目录

    • 1 前言
    • 2 报错
      • 报错1:ModuleNotFoundError: No module named 'distutils'
      • 报错2:ERROR:root:code for hash blake2b was not found.
      • 报错3:**`ModuleNotFoundError: No module named '_tkinter'`**
      • 报错4:UserWarning: Glyph 39044 (\N{CJK UNIFIED IDEOGRAPH-9884}) missing from font(s) DejaVu Sans.
        • 方法 1:安装支持 CJK(中日韩)的字体
          • 步骤 1:安装思源黑体(Noto Sans CJK)
          • 步骤 2:清理 Matplotlib 字体缓存
        • 方法 2:代码中指定中文字体
        • 方法 3:修改 Matplotlib 配置文件
          • 步骤 1:查找配置文件路径
          • 步骤 2:编辑配置文件
        • 验证是否生效
      • 错误5 AttributeError: 'FigureCanvasInterAgg' object has no attribute 'tostring_rgb'. Did you mean: 'tostring_argb'?
    • 结语

1 前言

最近在学习人工智能-机器学习入门,想通过python解决下线性回归问题。本人电脑为macos m1 pro,使用homebrew管理包依赖,

安装pyenv管理python版本,python版本3.12.x,openssl@1.1和python@3共存。

2 报错

报错1:ModuleNotFoundError: No module named ‘distutils’

产生过程:安装matplotlib报错ModuleNotFoundError: No module named ‘distutils’

原因分析:Python 3.12+ 移除了 distutils:官方不再维护此模块,改用 setuptools 替代

解决方案:

# 强制升级 setuptools 和 pip
pip install --upgrade --force-reinstall setuptools pip

报错2:ERROR:root:code for hash blake2b was not found.

产生过程:运行如下代码

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn import datasets, linear_model# read_csv里面的参数是csv在你电脑上的路径,此处csv文件放在notebook运行目录下面的CCPP目录里
data = pd.read_csv('./ccpp.csv')
data.head()

原因分析:

  1. 此错误通常表示当前 Python 环境中缺少 blake2b 哈希算法的支持,OpenSSL 依赖缺失或版本过低(需要 OpenSSL 1.1.1 或更高版本)。

解决方案:通过homebrew 卸载低版本openssl,升级最新版本openssl ,重新编译安装python

brew uninstall --ignore-dependencies openssl@1.1
brew install openssl
pyenv uninstall 3.12
pyenv install 3.12
pyenv global 3.12.9

报错3:ModuleNotFoundError: No module named '_tkinter'

  • 产生过程:编译安装python的时候报错

  • 产生原因:此错误表示 Python 环境中缺少 Tkinter 模块的支持,通常是因为在编译 Python 时未正确安装 Tcl/Tk 开发库

  • 解决方案:安装依赖,重新编译安装python

    brew install tcl-tk
    

最后环境配置正常如下图:

在这里插入图片描述

报错4:UserWarning: Glyph 39044 (\N{CJK UNIFIED IDEOGRAPH-9884}) missing from font(s) DejaVu Sans.

在 macOS M1 Pro 上使用 Matplotlib 绘图时,如果遇到 UserWarning: Glyph XXXX missing from font(s) DejaVu Sans 警告,通常是因为 Matplotlib 默认字体 DejaVu Sans 不支持某些 Unicode 字符(如中文、日文、韩文字符)。


方法 1:安装支持 CJK(中日韩)的字体
步骤 1:安装思源黑体(Noto Sans CJK)

推荐安装 Google 的 Noto Sans CJK 字体,它覆盖了大部分 Unicode 字符:

bash

复制

# 通过 Homebrew 安装(需提前安装 Homebrew)
brew install font-noto-sans-cjk font-noto-sans-cjk-sc# 或者手动下载并安装:
# 从官网下载:https://www.google.com/get/noto/
# 解压后双击 .ttf 文件,点击 "安装"。
步骤 2:清理 Matplotlib 字体缓存

Matplotlib 会缓存字体列表,安装新字体后需删除缓存:

bash

复制

# 查找缓存路径
python -c "import matplotlib; print(matplotlib.get_cachedir())"# 输出类似:/Users/username/.matplotlib
# 删除该目录下的 fontlist-* 文件
rm -rf /Users/username/.matplotlib/fontlist-*

方法 2:代码中指定中文字体

在 Python 代码中直接指定使用已安装的中文字体(如 Noto Sans CJK):

python

复制

import matplotlib.pyplot as plt
import numpy as np# 设置 Matplotlib 使用支持中文的字体
plt.rcParams['font.sans-serif'] = ['Noto Sans CJK JP']  # 根据字体名称调整
plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题# 示例:绘制带中文标签的图表
plt.plot(np.random.rand(10))
plt.title('示例图表')  # 中文标题
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.show()

方法 3:修改 Matplotlib 配置文件
步骤 1:查找配置文件路径

bash

复制

python -c "import matplotlib; print(matplotlib.matplotlib_fname())"
# 输出类似:/Users/username/.virtualenvs/venv/lib/python3.9/site-packages/matplotlib/mpl-data/matplotlibrc
步骤 2:编辑配置文件

找到以下两行并修改:

bash

复制

# 去掉注释并设置字体
font.family : sans-serif
font.sans-serif : Noto Sans CJK JP, DejaVu Sans, Arial  # 添加 Noto Sans CJK 到字体列表开头

验证是否生效

运行以下代码检查是否支持中文:

python

复制

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Noto Sans CJK JP']
plt.plot([1, 2, 3], [4, 5, 6])
plt.title('测试中文')
plt.show()

如果图表标题正常显示中文,则问题解决。

错误5 AttributeError: ‘FigureCanvasInterAgg’ object has no attribute ‘tostring_rgb’. Did you mean: ‘tostring_argb’?

解决方案,更换matplotlib后端

matplotlib.use('TkAgg') 

效果如下图所示:

在这里插入图片描述

结语

❓QQ:806797785

⭐️仓库地址:https://gitee.com/gaogzhen

⭐️仓库地址:https://github.com/gaogzhen

[1]deepseek[CP/OL].

[2]用scikit-learn和pandas学习线性回归[CP/OL].