You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu Server 24.04创建Python虚拟环境因zlib缺失报错求助

Ubuntu Server 24.04创建Python虚拟环境因zlib缺失报错求助

看起来你碰到的问题很典型——虽然系统已经装了zlib1g-dev,但你的Python 3.12在编译过程中并没有正确链接zlib库,导致虚拟环境里的Python缺失zlib模块,进而让ensurepip执行失败。我给你整理了具体的解决步骤:

问题复现

你执行创建虚拟环境的命令时:

python3.12 -m venv venv

触发了内置的ensurepip命令,报错:

Error: Command '['/root/venv/bin/python3.12', '-m', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.

直接运行ensurepip后看到核心错误:

Traceback (most recent call last):
  File "<frozen zipimport>", line 518, in _get_decompress_func
ModuleNotFoundError: No module named 'zlib'

原因分析

你已经通过apt-get install zlib1g-dev安装了zlib的开发包,但Python在编译时必须提前有这些依赖才能把zlib模块编译进Python二进制文件。如果编译Python时没装zlib1g-dev,后续再装也无法让已编译好的Python获取到zlib模块,只能重新编译Python。

解决步骤

  1. 安装Python编译所需的全部依赖
    先把编译Python需要的所有基础依赖都装全,避免其他模块缺失:
sudo apt-get update && sudo apt-get install build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl git
  1. 重新编译Python 3.12
  • 如果是源码安装的Python,找到之前的源码目录;如果没有,下载对应版本的源码(以3.12.4为例):
wget https://www.python.org/ftp/python/3.12.4/Python-3.12.4.tgz
tar -xf Python-3.12.4.tgz
cd Python-3.12.4
  • 配置编译选项,明确指定zlib的路径:
./configure --enable-optimizations --with-zlib=/usr
  • 编译并安装(用altinstall避免覆盖系统默认Python):
make -j$(nproc)
sudo make altinstall
  1. 重新创建虚拟环境
    现在再执行创建命令:
python3.12 -m venv venv

应该就能正常创建,不会再出现zlib相关的报错了。

备注:内容来源于stack exchange,提问作者Alex FangSW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 10:23:16