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

Ubuntu 22.04下pyenv+poetry虚拟环境报No module named '_lzma'错误

问题根因

这个报错和虚拟环境内的第三方包安装无关,本质是pyenv编译对应Python版本时,没有检测到系统里的lzma开发依赖,最终编译出的Python解释器缺失内置的_lzma C扩展模块。_lzma是解释器层面编译集成的模块,不是PyPI上可分发的第三方包,不管在虚拟环境里执行多少次pip/poetry install都修不好。

解决步骤
  • 先安装Ubuntu 22.04下编译Python lzma模块所需的系统依赖
    sudo apt update
    sudo apt install -y liblzma-dev lzma-dev
    
  • 重新编译安装pyenv中当前项目使用的Python版本,这步是核心:绝大多数人装完依赖没解决问题,都是漏了这步——pyenv安装的Python是独立编译的独立版本,不会自动链接后续安装的系统依赖,必须重新编译才能把缺失的模块编进去。
    先执行pyenv versions查看当前环境绑定的Python版本号(输出结果前面带*的就是当前在用的版本,比如3.10.13、3.11.4这类),然后执行:
    # 把<你的Python版本号>替换成实际查到的版本,例如3.10.13
    pyenv uninstall -f <你的Python版本号>
    pyenv install <你的Python版本号>
    
    安装过程中可以留意编译输出,没有出现_lzma模块相关的缺失提示就说明编译正常。
  • 重建项目的poetry虚拟环境,让虚拟环境绑定到新编译好的、带_lzma模块的Python解释器上
    进入项目根目录执行:
    poetry env remove --all
    poetry install
    
  • 验证修复结果
    进入poetry虚拟环境的Python控制台,执行以下语句不报错即为修复完成:
    import lzma
    from _lzma import *
    
避坑提示

不要尝试用pip install lzma这类命令修复,PyPI源上的lzma包不是Python内置的_lzma模块实现,安装后也解决不了这个报错。

内容的提问来源于stack exchange,提问作者nepipi6200

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:01:06