import: No module named '_bz2'
作者:互联网
- 不能导入 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
标签:named,bz2,python,bzip2,导入,模块,import 来源: https://www.cnblogs.com/hengdin/p/16277050.html