hengdin

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
统计
 
  1. 不能导入 xx 包 / 模块
    eg:
  • pandas 不能导入 bz2

No module named '_bz2'

bz2 的官方描述.

ttps://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fdocs.python.org%2Fzh-cn%2F3%2Flibrary%2Fbz2.html%3Fhighlight%3Dbz2

此模块提供了使用 bzip2 压缩算法压缩和解压数据的一

2.python 层面分析不能导入的本质原因
import 顺序

  • built-in
  • 当前路径 (.)
  • 标准库 (sys.path)

查看 bz2 模块所在的当前 python 中的路径

In [1]: import bz2  
In [2]: import inspect 
In [3]: inspect.getsourcefile(bz2)
Out[3]: '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/bz2.py'

在导入 bz2 模块的时候,bz2.py 导入了_bz2 模块,触发了导入异常

from builtins import open as _builtin_open
import io
import os
import _compression
from threading import RLock

# 从_bz2模块中导入BZ2Compressor, BZ2Decompressor
from _bz2 import BZ2Compressor, BZ2Decompressor
# ...

bz2 (标准库)->_bz2 (内建库,和 python 解释器打包在一起)

  • Lib/bz2.py
  • Modules/_bz2modules.c

到此为止,我们就明白了,不能导入_bz2 的原因是 python 解释器的内建模块没有支持 bz2
所以解决思路是:

  • 安装 bzip2 相关的包.
  • 重新源码编译 cpython. (在 configure 的过程中,会根据机器是否安装了 bzip2 来开启_bz2 模块)

1. 安装 bzip2

#安装 bzip2 相关的包
yum -y install bzip2 bzip2-devel

2. 重新编译 python

posted on   hengdin  阅读(4207)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
 
点击右上角即可分享
微信分享提示