Ubuntu 22.04 LTS ARM虚拟机pip install报错:compileall模块缺失
问题
在基于Apple Virtualization的UTM虚拟机中运行Ubuntu 22.04 LTS ARM系统时,执行python -m pip install hg-git出现以下错误:
$ python -m pip install hg-git Traceback (most recent call last): File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main return _run_code(code, main_globals, None, File "/usr/lib/python3.10/runpy.py", line 86, in _run_code exec(code, run_globals) File "/usr/lib/python3/dist-packages/pip/__main__.py", line 31, in <module> sys.exit(_main()) File "/usr/lib/python3/dist-packages/pip/_internal/cli/main.py", line 68, in main command = create_command(cmd_name, isolated=("--isolated" in cmd_args)) File "/usr/lib/python3/dist-packages/pip/_internal/commands/__init__.py", line 109, in create_command module = importlib.import_module(module_path) File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/usr/lib/python3/dist-packages/pip/_internal/commands/install.py", line 14, in <module> from pip._internal.cli.req_command import ( File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 21, in <module> from pip._internal.index.package_finder import PackageFinder File "/usr/lib/python3/dist-packages/pip/_internal/index/package_finder.py", line 32, in <module> from pip._internal.req import InstallRequirement File "/usr/lib/python3/dist-packages/pip/_internal/req/__init__.py", line 8, in <module> from .req_install import InstallRequirement File "/usr/lib/python3/dist-packages/pip/_internal/req/req_install.py", line 39, in <module> from pip._internal.operations.install.wheel import install_wheel File "/usr/lib/python3/dist-packages/pip/_internal/operations/install/wheel.py", line 5, in <module> import compileall ModuleNotFoundError: No module named 'compileall'
尝试网上建议的pip install compileall方法,同样报错:
$ pip install compileall Traceback (most recent call last): File "/usr/bin/pip", line 8, in <module> sys.exit(main()) File "/usr/lib/python3/dist-packages/pip/_internal/cli/main.py", line 68, in main command = create_command(cmd_name, isolated=("--isolated" in cmd_args)) File "/usr/lib/python3/dist-packages/pip/_internal/commands/__init__.py", line 109, in create_command module = importlib.import_module(module_path) File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/usr/lib/python3/dist-packages/pip/_internal/commands/install.py", line 14, in <module> from pip._internal.cli.req_command import ( File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 21, in <module> from pip._internal.index.package_finder import PackageFinder File "/usr/lib/python3/dist-packages/pip/_internal/index/package_finder.py", line 32, in <module> from pip._internal.req import InstallRequirement File "/usr/lib/python3/dist-packages/pip/_internal/req/__init__.py", line 8, in <module> from .req_install import InstallRequirement File "/usr/lib/python3/dist-packages/pip/_internal/req/req_install.py", line 39, in <module> from pip._internal.operations.install.wheel import install_wheel File "/usr/lib/python3/dist-packages/pip/_internal/operations/install/wheel.py", line 5, in <module> import compileall ModuleNotFoundError: No module named 'compileall'
解决方案
compileall是Python标准库的核心模块,无法通过pip安装,出现这个错误说明你的Python 3.10标准库文件缺失或损坏。可以通过系统包管理器修复:
第一步:检查
compileall模块文件是否存在
执行以下命令查看文件位置:ls /usr/lib/python3.10/compileall.py如果返回文件不存在的提示,确认标准库文件缺失。
第二步:重新安装Python 3.10标准库
使用Ubuntu的包管理器重新安装对应包:sudo apt update sudo apt install --reinstall python3.10-standard-library第三步:验证修复结果
执行以下命令测试模块是否能正常导入:python3 -c "import compileall; print('模块导入成功')"如果输出
模块导入成功,说明修复完成。第四步:重新安装目标包
现在可以正常执行原命令安装hg-git:python -m pip install hg-git
补充说明
另一台配置相同的虚拟机没有问题,是因为它的Python标准库文件完整,未被误删或损坏。出现这个问题通常是因为之前的操作中意外删除了标准库文件,或者安装了某些修改/破坏标准库的软件。
内容的提问来源于stack exchange,提问作者Joseph
相关产品推荐
相关产品推荐

