
Ubuntu日本語フォーラム

ログインしていません。
ubuntu16.04を使っています。
ファイヤーウォールの設定をいじろうかとgufwを開こうとすると
パスワード認証はでるのですが、パスワード入力、認証、その後何も起きません。
エラーは
ddd@ddd-Prime-Series ~ $ gufw
Traceback (most recent call last):
File "/usr/share/gufw/gufw/gufw.py", line 19, in <module>
from controller import Controller
File "/usr/share/gufw/gufw/controller.py", line 18, in <module>
from model.frontend import Frontend
File "/usr/share/gufw/gufw/model/frontend.py", line 18, in <module>
from firewall import Firewall
ImportError: cannot import name 'Firewall'
です。
思い当たるのは、python2からpython3.6を入れデフォルト設定にしたことなんですけど関係ありますか?
アドバイスよろしくおねがいします。
オフライン
ry様返信ありがとうございます。
初心者名なもので、https://tetechi.com/python3-6/ ここのサイト通りpysthon3.6を入れてデフォルト設定したのですが、
簡単にpython2.7をデフォルトを戻せるのでしょうか?すいません、アドバイスお願いします。
オフライン
Ubuntu16.04でPythonのバージョンを2.7から3.6にバージョンアップする - ちょっと便利なてっちーノート の以下の記述を実行したのでしょうか。
mkdir -p $HOME/bin ln -s /usr/bin/python3.6 $HOME/bin/python
そうであれば、rm $HOME/bin/python で戻るはずです。
オフライン
返信ありがとうございます。 結論から言うと、rm $HOME/bin/python でpython3.5になりました。
python3.6にする前に、こちらのサイトで https://toc.tocu.co.jp/blog/tips/item/2129 一度python3.5をデフォルトにしたためだと思います。
ちょっとめんどくさい事をしてしまい申しわけありません。python2系への戻し方がわかりません。アドバイスよろしくお願いします。
オフライン
最初に ls /usr/bin/python2.* を実行して /usr/bin/python2.7 が表示されることを確認してから sudo ln -s /usr/bin/python python2.7 を実行してください。
オフライン
返信あがとうございます。順番にコマンド打って見ましたが、やはりpython3.5.2になってしまいます。
ddd@ddd-Prime-Series ~ $ python -V
Python 3.6.10
ddd@ddd-Prime-Series ~ $ rm $HOME/bin/python
ddd@ddd-Prime-Series ~ $ python -V
bash: /home/ddd/bin/python: そのようなファイルやディレクトリはありません
ddd@ddd-Prime-Series ~ $
となって新しくターミナルを立ち上げると
ddd@ddd-Prime-Series ~ $ python -V
Python 3.5.2
ddd@ddd-Prime-Series ~ $ ls /usr/bin/python2.*
/usr/bin/python2.7
ddd@ddd-Prime-Series ~ $ sudo ln -s /usr/bin/python python2.7
[sudo] ddd のパスワード:
ddd@ddd-Prime-Series ~ $ python -V
Python 3.5.2
ddd@ddd-Prime-Series ~ $
となってpython2.7にはならないのですが?
試しに $sudo unlink ./python
$ln -s /usr/bin/python2.7 ./python
と打っても変わりませんでした。
とりあえず、python3系でgufwが使えないっていう事だけわかれば、納得するんですが。
何か、アドバイスいただけるとたすかります。よろしくお願いいたします。
オフライン
以下のふたつのコマンドの結果を提示してください。
which -a python python2 whereis python python2
オフライン
ry様ありがとうございます。
コマンド結果は
ddd@ddd-Prime-Series ~ $ which -a python python2
/home/ddd/bin/python
/usr/bin/python
/usr/bin/python2
ddd@ddd-Prime-Series ~ $ whereis python python2
python: /usr/bin/python3.6 /usr/bin/python3.6-config /usr/bin/python3.5m /usr/bin/python3.5m-config /usr/bin/python /usr/bin/python3.6m-config /usr/bin/python3.5-config /usr/bin/python3.6m /usr/bin/python3.5 /usr/bin/python2.7 /usr/lib/python3.6 /usr/lib/python3.5 /usr/lib/python2.7 /etc/python3.6 /etc/python /etc/python3.5 /etc/python2.7 /usr/local/lib/python3.6 /usr/local/lib/python3.5 /usr/local/lib/python2.7 /usr/include/python3.6 /usr/include/python3.5m /usr/include/python3.6m /usr/include/python3.5 /usr/include/python2.7 /usr/share/python /home/ddd/bin/python /usr/share/man/man1/python.1.gz
python2: /usr/bin/python2 /usr/bin/python2.7 /usr/lib/python2.7 /etc/python2.7 /usr/local/lib/python2.7 /usr/include/python2.7 /usr/share/man/man1/python2.1.gz
ddd@ddd-Prime-Series ~ $
となりました。
よろしくお願いいたします。
オフライン
では、以下のふたつのコマンドの結果を提示してください。
ls -l /home/ddd/bin/python /usr/bin/python echo $PATH
オフライン
返信ありがとうございます。
コマンド結果は
ddd@ddd-Prime-Series ~ $ ls -l /home/ddd/bin/python /usr/bin/python
lrwxrwxrwx 1 ddd ddd 18 12月 20 17:56 /home/ddd/bin/python -> /usr/bin/python3.6
lrwxrwxrwx 1 root root 18 12月 16 10:27 /usr/bin/python -> /usr/bin/python3.5
ddd@ddd-Prime-Series ~ $ echo $PATH
/home/ddd/bin:/home/ddd/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
ddd@ddd-Prime-Series ~ $
となりました。よろしくおねがいします。
オフライン
以下の二つのコマンドを実行するとどうでしょうか。
rm /home/ddd/bin/python sudo ln -s python2.7 /usr/bin/python
ところで、#6 で指示したコマンドの引数が逆でした。
#6 のコマンドを実行したディレクトリで ls -l を実行すると lrwxrwxrwx 1 ........ python2.7 -> /usr/bin/python と表示されると思います。
このように表示されたときは rm python2.7 を実行して、作成されてしまったファイルを削除しておいてください。
オフライン
ry様ありがとうございます。
結果ですが $rm /home/ddd/bin/python を打ったあとです。
ddd@ddd-Prime-Series ~ $ sudo ln -s python2.7 /usr/bin/python
[sudo] ddd のパスワード:
ln: シンボリックリンク '/usr/bin/python' の作成に失敗しました: ファイルが存在します
ddd@ddd-Prime-Series ~ $
となって自分のミスですが、ファイルが存在するということなので
$unlink ./python3.5.2
と打ったら、ターミナルも起動しなくなり試しにログアウト、ログインしたら
背景が真っ黒になり、メインメニューも出なくなり、どうにもできない状況になりました。
今、半年前ぐらいクローンを作っていたので、それで復旧しています。
今の所、不都合はgufwだけなので、これで運用しようと思いますが、解決策があればアドバイスおねがいします。
オフライン
これは小生の説明が少々悪かったみたいです。
sudo ln -s python2.7 /usr/bin/python ではなく sudo ln -is python2.7 /usr/bin/python と -i オプションを付けて案内すべきでした。
どのディレクトリをカレントにして操作したかが分かりませんが、結果から推測するに /usr/bin をカレント ディレクトリにしていたのではないでしょうか。
unlink コマンドはほぼ rm と同じなのでどちらのコマンドであろうと使用には細心の注意が必要です。
推測通り /usr/bin がカレント ディレクトリになっていたのであれば、/usr/bin/python のリンクを辿って行き着く先 (/usr/bin/python3.5.2) を消してしまったのだろうと思います。
python はシステムのモジュールのかなりが利用しているプログラムなので、これが無くなったためにシステムに異常をきたしたのではないでしょうか。
オフライン
ry様返信ありがとうございます。
$rm $HOME/bin/python
$rm /home/ddd/bin/python
$sudo ln -is python2.7 /usr/bin/python -i で書き換えますか(コピペしてなかったので何を書き換えたのか不明)でyesとしたところ、
で見事python2.7に戻すことができました。gufwも見事起動しました。
で試しにpytyon3.5.2にしないで、python3.6を上記サイトでデフォルトにしてもgufwは起動しました。
どうやら、python3.5.2をデフォルトにしたのが結果悪かったみたいです。
ry様長いお付き合いありがとうございました。gufw完全復旧です。大変助かりました。ありがとうございました。
オフライン