在Python3.12+版本安装运行the-fuck会遇到问题:ModuleNotFoundError: No module named 'imp'
python
1wavesman@wavesman-Surface-Pro:~$ fuck
2Traceback (most recent call last):
3 File "/home/wavesman/.local/bin/fuck", line 5, in <module>
4 from thefuck.entrypoints.not_configured import main
5 File "/home/wavesman/.local/lib/python3.12/site-packages/thefuck/entrypoints/not_configured.py", line 13, in <module>
6 from .. import logs, const # noqa: E402
7 ^^^^^^^^^^^^^^^^^^^^^^^^^^
8 File "/home/wavesman/.local/lib/python3.12/site-packages/thefuck/logs.py", line 8, in <module>
9 from .conf import settings
10 File "/home/wavesman/.local/lib/python3.12/site-packages/thefuck/conf.py", line 1, in <module>
11 from imp import load_source
12ModuleNotFoundError: No module named 'imp'本篇文章中将会对进行修复
问题分析:
出现该问题是由于Python 从 3.12 版本开始移除了 imp 模块。详情请参考:Python3文档:imp
解决办法
- 首先根据你的the-fuck安装方式卸载它,例如:
bash
1# pip
2pip uninstall thefuck
3# ubuntu & Debian
4sudo apt remove thefuck- 前往仓库:DL9090/the-fuck/ipm-bug-fix
- 克隆/下载此仓库
- 解压为文件夹,在文件夹所在路径运行
pip install ./<文件夹名>,例如我的为pip install thefuck-imp-bug-fix一般来说这个时候关闭终端或运行source ~./.bashrc(该命令不同系统不同,参考the-fuck|Readme)重新打开再运行fuck就正常了