源码安装Ampy后出现ModuleNotFoundError: No module named 'progress_bar'求助
解决Ampy源码安装后
ModuleNotFoundError: No module named 'progress_bar'问题 问题背景
在Ubuntu 23.04 + Python 3.11.2环境下,从源码执行sudo python3 setup.py install安装Ampy后,运行ampy命令出现以下错误:
ampy Traceback (most recent call last): File "/usr/local/bin/ampy", line 33, in <module> sys.exit(load_entry_point('adafruit-ampy==1.1.0', 'console_scripts', 'ampy')()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/bin/ampy", line 25, in importlib_load_entry_point return next(matches).load() ^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/importlib/metadata/__init__.py", line 202, in load module = import_module(match.group('module')) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1206, in _gcd_import File "<frozen importlib._bootstrap>", line 1178, in _find_and_load File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 690, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 940, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/usr/local/lib/python3.11/dist-packages/adafruit_ampy-1.1.0-py3.11.egg/ampy/cli.py", line 31, in <module> ModuleNotFoundError: No module named 'progress_bar'
尝试解压egg归档、安装python3-progressbar/python3-progressbar2包均未解决问题。
解决方案
方案1:用pip安装最新版Ampy(推荐)
旧版本Ampy的setup.py安装方式在Python 3.11下存在包结构兼容问题,直接用pip安装官方维护的最新版本即可解决:
- 卸载已安装的旧版本:
sudo pip uninstall adafruit-ampy - 安装最新版:
若需全局安装,添加pip install adafruit-ampy --usersudo:sudo pip install adafruit-ampy
方案2:修改源码导入语句(适合坚持用源码的场景)
如果一定要使用当前源码版本,修改ampy/cli.py中的导入逻辑:
- 打开源码目录下的
ampy/cli.py文件 - 将第31行的
import progress_bar修改为相对导入:from . import progress_bar - 重新执行安装:
sudo python3 setup.py install
方案3:用pip从源码安装
避免直接使用setup.py install,改用pip处理源码安装,它会自动处理包结构和依赖:
- 进入Ampy源码目录
- 执行安装:
全局安装则执行:pip install . --usersudo pip install .
内容的提问来源于stack exchange,提问作者mongoq
相关产品推荐
相关产品推荐

