Python从入门到荒废-无网络Linux系统安装matplotlib
前提条件
已通过以下命令下载所有依赖:
pip download matplotlib==3.5.3 -d ./matplotlib_deps --only-binary=:all: --platform=manylinux2014_x86_64 --python-version=38
注:
- matplotlib的版本是3.5.3,此版本兼容python的3.8.2版本
- -d 是下载目录
- –only-binary=:all: 只下载二进制文件
- -platform指定linux系统架构为x86_64[查看架构命令:lscpu或uname -m]
- –python-version指定python版本
将所有下载的.whl文件复制到离线Linux系统的目录(例如:/home/user/matplotlib_deps)
安装步骤
安装系统依赖(必须)
# Ubuntu/Debian 系统
sudo apt-get install -y \libfreetype6 libopenjp2-7 libpng16-16 libjpeg62-turbo# CentOS/RHEL 系统
sudo yum install -y \freetype libjpeg-turbo libpng
离线安装所有依赖包
cd /home/user/matplotlib_deps
# 列出所有下载的包
ls -1 *.whl
# 安装所有依赖(按正确顺序)
pip install --no-index --find-links=. \cycler*.whl \kiwisolver*.whl \numpy*.whl \pillow*.whl \pyparsing*.whl \python_dateutil*.whl \six*.whl \fonttools*.whl \matplotlib*.whl
注意:
- 如果存在多个版本的同一个包,安装顺序很重要。使用通配符*时确保按上述顺序安装。
- –no-index 去掉安装包的索引,index默认是http的url
- –find-links 和–no–index搭配, . 指定为本地路径,否则也会报网络超时
验证安装
python -c "import matplotlib; print(f'Matplotlib {matplotlib.__version__} 安装成功!')"
IDE验证
- 检查IDE使用的python版本是否与matplotlib安装的python版本是否一致。不一致更改IDE中的Interpreter
常见问题解决
问题:缺少底层库
错误示例:libopenjp2.so.7: cannot open shared object file
解决方案:
sudo find / -name libopenjp2.so.7 2>/dev/null # 检查是否存在
sudo ln -s /usr/lib/x86_64-linux-gnu/libopenjp2.so.7 /usr/lib/ # 创建符号链接
问题:权限不足
添加 --user 参数
pip install --no-index --find-links=. --user matplotlib*.whl
备用安装脚本(推荐)
创建安装脚本 install_matplotlib.sh:
!/bin/bashDEPS_DIR="/home/user/matplotlib_deps"echo "= 安装系统依赖 ="
sudo apt-get install -y libfreetype6 libpng16-16 libjpeg62-turbo 2>/dev/nullecho "= 安装Python依赖包 ="
for pkg in cycler kiwisolver numpy pillow pyparsing python_dateutil six fonttools matplotlib; doecho "安装: $pkg"pip install --no-index --find-links=DEPS_DIR DEPS_DIR/${pkg}*.whl
doneecho "= 验证安装 ="
python -c "import matplotlib as mpl; print(f'成功安装 Matplotlib v{mpl.__version__}')"
赋予执行权限并运行:
chmod +x install_matplotlib.sh
./install_matplotlib.sh
重要提示
-
架构兼容性:确保下载的manylinux2014_x86_64与目标机器CPU架构一致
-
Python版本:目标机器Python版本必须是3.8.x
-
依赖顺序:必须按 numpy → pillow → matplotlib 的顺序安装
-
文件完整性:传输时使用校验和验证:
# 生成校验和 cd matplotlib_deps sha256sum *.whl > checksums.sha256 # 离线机器验证 sha256sum -c checksums.sha256
如果所有步骤正确执行,即可在完全离线的Linux系统上正常使用matplotlib。