几乎没有任何命令可以工作,没有名为“apt_pkg”的模块

几乎没有任何命令可以工作,没有名为“apt_pkg”的模块

我不知道我做了什么,但“ls”和“sudo”等基本命令不再起作用,现在向我抛出此错误消息。

File "/usr/lib/command-not-found", line 28, in <module>
from CommandNotFound import CommandNotFound
File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 19, in <module>
from CommandNotFound.db.db import SqliteDatabase
File "/usr/lib/python3/dist-packages/CommandNotFound/db/db.py", line 5, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
import apport.fileutils
File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
from apport.packaging_impl import impl as packaging
File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 24, in <module>
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
File "/usr/lib/command-not-found", line 28, in <module>
from CommandNotFound import CommandNotFound
File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 19, in <module>
from CommandNotFound.db.db import SqliteDatabase
File "/usr/lib/python3/dist-packages/CommandNotFound/db/db.py", line 5, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg' 

请帮帮我,我哭了,明天还有最后期限。

我应该全新安装 Ubuntu 但保留文件吗?

答案1

我们对 OP 进行了一些调试。

  1. cd /bin 这有效,所以我们知道 /bin 没有被删除
  2. cd /bin; echo ls*这产生了“ls lsblk lsmod”而不是“ls*”,所以我们知道 /bin 中至少有 3 个文件
  3. /bin/ls -l /bin/ls这产生了“-rwxr-xr-x 1 root root 133792 Jan 18 2018 /bin/ls”,所以这不是删除执行权限的问题。
  4. PATH=/bin:/usr/bin:$PATH这创建了几个正常的位置来查找命令,现在lssudo可以工作了。

结论:PATH变量已损坏,因此 bash 找不到任何内容。使用从内置命令(cd和)开始的逐步调试,echo可以快速诊断出这一问题。希望OP已经擦干眼泪并再次露出笑容。

OP 刚刚评论说他们“删除了对我的 .bashrc 的一些非常愚蠢的编辑,一切似乎都很好”。

相关内容