ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

import: No module named '_bz2'

2022-05-16 15:36:06  阅读:181  来源: 互联网

标签:named bz2 python bzip2 导入 模块 import


  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

标签:named,bz2,python,bzip2,导入,模块,import
来源: https://www.cnblogs.com/hengdin/p/16277050.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有