Google Cloud Workstation出现ModuleNotFoundError: No module named '_bz2'求助
问题:导入bz2模块时出现ModuleNotFoundError错误
我在新启动的Google Cloud Workstation中创建了如下Python文件:
import bz2 import binascii original_data = 'This is the original text.' print ('Original :', len(original_data), original_data) compressed = bz2.compress(original_data) print ('Compressed :', len(compressed), binascii.hexlify(compressed)) decompressed = bz2.decompress(compressed) print ('Decompressed :', len(decompressed), decompressed)
运行该代码时,收到如下错误:
Traceback (most recent call last): File "/home/user/01/app.py", line 1, in <module> import bz2 File "/usr/local/lib/python3.10/bz2.py", line 17, in <module> from _bz2 import BZ2Compressor, BZ2Decompressor ModuleNotFoundError: No module named '_bz2'
解决方法
1. 修复模块依赖问题
Google Cloud Workstation的默认镜像未预装libbz2-dev库,导致Python的_bz2内置模块无法加载。在终端执行以下命令安装依赖:
sudo apt update && sudo apt install -y libbz2-dev
安装完成后重启Python环境或终端,即可正常导入bz2模块。
2. 修复代码数据类型错误
另外,你的代码存在数据类型不匹配的问题:bz2.compress()要求传入字节类型数据,而你传入的是字符串,后续运行会触发TypeError。可以通过两种方式修正:
- 直接定义字节类型的原始数据:
original_data = b'This is the original text.' - 或者在压缩时对字符串进行编码:
compressed = bz2.compress(original_data.encode('utf-8'))
内容的提问来源于stack exchange,提问作者DanielAttard
相关产品推荐
相关产品推荐

