ImportError: No module named bz2。

本文记录了一次编译Android7.1.1源码过程中遇到的Python模块bz2缺失的问题及解决方案。作者尝试更新Python版本后遭遇编译错误,通过回滚并安装bz2和zlib等依赖库最终解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前几天因为编译Android 7.1.1源码的原因,手贱更新了服务器Python版本,结果编译报错,
无奈有回到2.x的版本,如下为安装Python3的命令




sudo apt-get install python3
系统会提示输入Linux 的密码,输入密码后下载 
刚才下载的Python程序被安装在usr/local/lib/python3.5 中 




用命令删除usr/bin/目录下的默认python link文件
sudo rm -rf usr/bin/python


给系统默认python编译器建立新的连接


sudo ln -s /usr/bin/python3.5 /usr/bin/python
验证系统默认Python是否是刚才安装的


直接在命令窗口输入python即可 
python -V


回退到Python2.7.6后,编译竟然还是报错:
File "out/host/Linux-x86/obj/EXECUTABLES/mksnapshot.arm_intermediates/js2c.py", line 36, in <module>


    import bz2
ImportError: No module named bz2
Traceback (most recent call last):
  File "out/host/linux-x86/obj/EXECUTABLES/mksnapshot.arm_intermediates/js2c.py", line 36, in <module>
    import bz2
ImportError: No module named bz2
正常在执行import bz2后还是处在输入状态>>>,而不是提示importerror
经在网上一番搜索,主要解决方法有安装bz2:
sudo apt-get install -y bzip2*
或sudo apt-get install libbz2-dev
重新编译python
cd Python-2.7.6
make 
sudo make install
以上方案试过后报了缺少zlib包的错误,于是又搜索zlib包的安装,如下:
 下载zlib,并解压


 wget www.zlib.net/zlib-1.2.11.tar.gz
 tar zvfx zlib-1.2.11.tar.gz


进入zlib目录,执行以下命令安装zlib


 ./configure --prefix=usr/local/python2.7
 make 
 make check
 sudo make install

 安装zlib时也会报错,原因是./configure 命令后面没有加 --prefix=usr/local/python2.7



参考: 
http://blog.51cto.com/297020555/593224 
ImportError: No module named bz2。


tar zxvf Python-2.7.tgz  
cd Python-2.7/  
./configure;make;make install 
解决步骤:
1.
yum install -y bzip2* 
2.
cd Python-2.7/Modules/zlib  
./configure ;make;make install 
3.
cd Python-2.7/  
python2.7 setup.py install 
(最后第三步安装好)


手动下载bz2源码来编译
https://stackoverflow.com/questions/12806122/missing-python-bz2-module
yum install  bzip2-devel
wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz
tar -zxvf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
make && make install
configure and re compile python

### Python 中 `ModuleNotFoundError: No module named 'convertCoco'` 的解决方案 当遇到 `ModuleNotFoundError: No module named 'convertCoco'` 错误时,这表明当前环境中缺少名为 `convertCoco` 的模块。以下是可能的原因以及对应的解决办法: #### 可能原因分析 1. **未安装目标模块** 如果尚未安装 `convertCoco` 模块,则运行程序时会抛出此错误。 2. **环境配置问题** 当前使用的 Python 环境可能并未正确加载所需的模块。例如,在虚拟环境中工作却忘记激活该环境,或者不同版本的 Python 使用了不同的包管理器。 3. **拼写错误或名称不匹配** 需要确认模块名是否完全一致(区分大小写)。如果实际模块名字并非 `convertCoco` 而是其他形式,则也会引发此类异常。 4. **依赖冲突或其他技术限制** 若存在多个版本的相同库文件在同一路径下共存,可能会导致导入失败;另外某些特定平台上的二进制扩展也可能引起兼容性难题。 #### 解决方案详解 ##### 方法一:通过 pip 工具安装缺失模块 尝试利用官方推荐的方式即借助于 PyPI (Python Package Index) 来获取并部署所需软件包。 ```bash pip install convert-coco-json # 假设这是正确的包名,请先查阅文档验证确切称呼 ``` 注意这里采用了连字符 `-` 连接的形式而非驼峰命名法表示项目标题,因为很多情况下开发者会选择这种风格作为发布至仓库中的正式标签[^1]。 ##### 方法二:手动下载源码编译构建 假如上述命令无法找到对应条目或者是私有定制化组件的话,则可以考虑前往其官网或者其他公开资源站点寻找最新稳定版压缩包自行处理。 执行解压操作之后进入指定目录再按照指示完成组装流程即可。 ```bash git clone https://github.com/example/convert_coco.git cd convert_coco python setup.py install ``` ##### 方法三:切换合适的解释器实例 确保所调用的 python 实体确实已经具备相应功能支持。可以通过以下指令来甄别目前默认选用哪一个可执行档位号: ```bash which python # Unix/Linux/MacOS 下查看链接指向位置 where python # Windows 平台查询关联映射关系 ``` 一旦发现混搭现象就应当统一调整成单一标准体系以便后续正常运作不受干扰[^2]. ##### 方法四:检查系统级共享库是否存在遗漏项 类似于 `_bz2` 库的情况一样,部分核心特性依赖外部 C/C++ 编写的动态连接档案(.so 或 .dll),如果没有预置好这些基础要素同样会造成访问受限状况发生。因此有必要参照相似案例说明去排查潜在隐患点所在之处[^3]: - 对 Linux 用户而言需额外补充开发套件组比如 libbz2-dev; - Mac OS 利用 Homebrew 提供便捷途径搞定必要构件; - Winodws 方面则依靠 Microsoft Visual Studio Redistributable Packages 达成目的。 --- ### 示例代码片段展示如何正确引入第三方库 假设我们成功解决了以上提到的各种障碍因素后就可以放心大胆地编写业务逻辑啦!下面给出一段简单的演示样例用于测试整个链条是否通畅无阻塞情况出现: ```python try: import convertCoco as cc except ImportError as e: print(f"Error occurred while importing the library {e}") else: dataset = cc.load_annotations('path/to/coco.json') images = dataset['images'] annotations = dataset['annotations'] for img in images[:5]: print(img) print("Process completed successfully!") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值