重新安装python后无法使用UFW

Bob*_*ace 5 python ufw 18.04

重新安装 python 和 ufw 后,出现以下错误:

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'
Run Code Online (Sandbox Code Playgroud)

我曾多次尝试重新安装 ufw,但无法正常工作。

我注意到的pip是,sudo使用pip2代替pip3但也python3用作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
Run Code Online (Sandbox Code Playgroud)

我不确定这是否会导致问题。

历史:

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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']
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

Tej*_*kar 6

你不应该python从 Ubuntu 中删除,因为很多软件包都是在 Ubuntu 上构建的。由于您已经安装了python,请执行下面列出的命令重新安装ufw

sudo apt-get purge --auto-remove ufw
sudo apt-get install ufw
Run Code Online (Sandbox Code Playgroud)

  • 似乎不太可能:请参阅 https://packages.ubuntu.com/bionic-updates/ufw 。18.04 中的 ufw 包是针对 Python3 而不是 Python2 构建的。Py2 不是 `ufw` 的依赖项。 (2认同)