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'
_
私はufwを複数回再インストールしようとしましたが、機能しません。
pip
について気付いたのは、Sudo
が_pip2
_ではなく_pip3
_を使用していることですが、python
として_python3
_も使用しています。
_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
_
それでも問題が発生するかどうかはわかりません。
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
_
pip3
をアンインストールしたときに、ufw
がpython3-pip
から削除されたようです。
これを再インストールしてみてください:
Sudo pip3 install https://launchpad.net/ufw/0.36/0.36/+download/ufw-0.36.tar.gz
多くのパッケージがUbuntu上に構築されているため、Ubuntuからpython
を削除することは想定されていません。既にpythonをインストールしているため、以下のコマンドを実行してufw
を再インストールしてください
Sudo apt-get purge --auto-remove ufw
Sudo apt-get install ufw
python ufwが使用していたバージョンは削除され、インストールされたバージョンが以前とは異なるため、ufwがエラーを報告しています。
次のコマンドで、pythonバージョンufwが使用しているバージョンをトレースバックできます。
Sudo find /usr/lib/ -name "ufw"
たとえば、以下のような出力が表示されます(正確には、python ufwが使用しているバージョンによって異なります)。
/usr/lib/python3.6/site-packages/ufw
上記の例では、ufwはpython 3.6を使用しています。必要に応じて、特定のpythonバージョンを再インストールする必要があります。
Ubuntu 18.04では、すべての依存関係はパッケージマネージャーによって自動的に処理されます。依存関係を手動でインストールしないと仮定します。
UFWと互換性のないpythonパッケージを使用しているようです。 pythonプロジェクトを実行していない場合は、pythonを削除して、UFWが依存関係を使用して自動的に再インストールできるようにします。
他のパッケージが削除されるようなメッセージを受け取った場合、プロセスを停止します。
まだ問題。試してください:
Sudo apt install aptitude
Sudo aptitude install ufw
警告:Pythonのようなパッケージに対してこれを行うと、システムが使用できなくなる可能性があります。これを理解していない限り試みないでください。システムが壊れても私を責めないでください。
この状況で今できる最善のことは、データをバックアップすることです。外付けハードディスクなどがある場合、なんとかしてファイルをバックアップします。インストール後にUbuntuにプレインストールされているパッケージ、つまり「インストールしなかったパッケージ」をアンインストールしないでください。今後、パッケージをアンインストールして再インストールする場合は、パッケージを削除しないでください。以下を使用します。
Sudo apt install --reinstall <package-name>
私 以前は小さなバグのためにOpenSSLをUbuntuからアンインストールし、Ubuntuに必要な129個のパッケージをアンインストールしました。 Ubuntuを再インストールする必要がありました。したがって、パッケージをアンインストールまたは再インストールするときは注意してください。