[SOLVED] Linux terminal and Python are mushed together

Issue

This Content is from Stack Overflow. Question asked by justanormaluser

When I run some commands, which work, for example neofetch, it gives me a Python error.

username@host:~$ as
Traceback (most recent call last):
File “/usr/lib/command-not-found”, line 28, in
from CommandNotFound import CommandNotFound
File “/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py”, line 19, in
from CommandNotFound.db.db import SqliteDatabase
File “/usr/lib/python3/dist-packages/CommandNotFound/db/db.py”, line 5, in
import apt_pkg
ModuleNotFoundError: No module named ‘apt_pkg’

(I tried to use the code block but it didn’t do anything so I removed them)

It does that whenever I type an invalid command. This started happening after I installed Python 3.9. I am running Kubuntu with Python 3.10 installed by default.



Solution

Modern Linux distributions tend to use a lot of python scripts for internal use; for this reason python gets installed with a plethora of libraries.

The error you are getting is because you replaced that fairly complete system python with a version of your own choosing without providing all the libraries the original came with.

The error you see is emitted by /usr/lib/command-not-found, a script using python3 as found in the system path.

I strongly recommend that you re-install the original python packages and use e.g. anaconda for your specific python needs.

The main takeaway from this is:

DON’T MESS WITH THE SYSTEM PYTHON.


This Question was asked in StackOverflow by justanormaluser and Answered by tink It is licensed under the terms of CC BY-SA 2.5. - CC BY-SA 3.0. - CC BY-SA 4.0.

people found this article helpful. What about you?