web-dev-qa-db-fra.com

Impossible d'utiliser UFW après la réinstallation de python

Après avoir réinstallé python et ufw, j'obtiens l'erreur suivante:

user@machine:~$ Sudo ufw status
Traceback (most recent call last):
  File "/usr/sbin/ufw", line 25, in <module>
    import ufw.frontend
ModuleNotFoundError: No module named 'ufw'

J'ai essayé de réinstaller ufw plusieurs fois mais je ne le fais pas fonctionner.

Ce que j'ai remarqué à propos de pip, c'est que Sudo utilise pip2 Au lieu de pip3 Mais utilise également python3 Comme python :

user@machine:~$ pip -V
pip 19.3.1 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)
user@machine:~$ Sudo pip -V
pip 19.3.1 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
user@machine:~$ Sudo -i
root@machine:~# pip -V
pip 19.3.1 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)

user@machine:~$ python -V
Python 3.8.0
user@machine:~$ Sudo python -V
Python 3.8.0
user@machine:~$ Sudo -i
root@machine:~# python -V
Python 3.8.0

Je ne sais pas si cela cause les problèmes.

Histoire d'Apt:

apt remove --purge python3-pip # This broke ufw probably because --purge
apt remove python3
apt install python3 
apt remove python3 # Noticed outdated version, uninstall again and built from source afterwards
apt install python3-pip # Was done after building and installing python3 from source

Sudo pip3 list:

Package    Version
---------- ---------
certifi    2019.9.11
chardet    3.0.4
idna       2.8
pip        19.3.1
requests   2.22.0
setuptools 41.2.0
urllib3    1.25.7

python3 -c 'import sys; print(sys.version); print(sys.path)':

3.8.0 (default, Dec  1 2019, 09:38:21)
[GCC 7.4.0]
['', '/usr/local/lib/python38.Zip', '/usr/local/lib/python3.8', '/usr/local/lib/                                                      python3.8/lib-dynload', '/usr/local/lib/python3.8/site-packages']

ls /usr/lib/python3/dist-packages/ufw/

applications.py  backend_iptables.py  backend.py  common.py  frontend.py  __init__.py  parser.py  __pycache__  util.py
4
thesys

Il semble que ufw ait été supprimé de pip3, lorsque vous avez désinstallé python3-pip

Essayez ceci pour le réinstaller:

Sudo pip3 install https://launchpad.net/ufw/0.36/0.36/+download/ufw-0.36.tar.gz
1
Olimjon

Vous n'êtes pas censé supprimer python d'Ubuntu car de nombreux packages sont construits dessus. Puisque vous avez déjà installé python, veuillez exécuter les commandes répertoriées ci-dessous pour réinstaller ufw

Sudo apt-get purge --auto-remove ufw
Sudo apt-get install ufw
1
Tejas Lotlikar

Il ressemble à python la version utilisée par ufw est supprimée et la version installée est différente de ce qu'elle était, donc ufw signale une erreur.

Vous pouvez retracer quelle python version ufw utilise en suivant la commande.

Sudo find /usr/lib/ -name "ufw"

Par exemple, vous aurez une sortie similaire ci-dessous (exacte dépend de votre python utilisée par ufw).

/usr/lib/python3.6/site-packages/ufw

Dans l'exemple ci-dessus, ufw utilise python 3.6. Vous devez réinstaller une version particulière de python selon votre cas).

1
Ketan Patel

Dans ubuntu 18.04, toutes les dépendances sont automatiquement gérées par le gestionnaire de paquets. Vous supposez de ne pas installer manuellement la dépendance.

Il semble que vous utilisiez python package qui n'est pas compatible avec UFW. Si vous n'avez pas de projet python en cours d'exécution, essayez de supprimer python et autorisez UFW à réinstaller automatiquement avec les dépendances.

Arrêtez le processus, si vous recevez un message comme un autre paquet sera supprimé.

Toujours un problème. Essayez:

Sudo apt install aptitude

Sudo aptitude install ufw

0
Aravind

Veuillez lire ceci attentivement

AVERTISSEMENT: Faire cela à des paquets comme Python rendra probablement votre système inutilisable, N'ESSAYEZ PAS, À MOINS QUE VOUS COMPRENEZ. Ne me blâmez pas si votre système tombe en panne.

La meilleure chose que vous puissiez faire maintenant dans cette situation est de sauvegarder vos données. Si vous avez un disque dur externe ou autre chose, sauvegardez vos fichiers. Vous ne devez pas désinstaller les packages préinstallés dans Ubuntu après l'installation, c'est-à-dire "Les packages que vous n'avez pas installés", à l'avenir si vous souhaitez désinstaller et réinstaller des packages ne les supprimez pas, utilisez ce qui suit:

Sudo apt install --reinstall <package-name>

Je précédemment désinstallé OpenSSL d'Ubuntu en raison d'un petit bogue, et il a désinstallé 129 packages, qui étaient nécessaires pour Ubuntu. J'ai dû réinstaller Ubuntu. Soyez donc prudent lorsque vous désinstallez ou réinstallez des packages.