python3にした後、firewall-cmdでport解放しようとしたら、エラーが発生。「File "/usr/bin/firewall-cmd", line 24, in from gi.repository import GObject ModuleNotFoundError: No module named 'gi'」


firewall-cmdを叩いたら、エラーが発生

firewallの内容確認
$ firewall-cmd --list-all-zones
$ firewall-cmd --zone=public --list-services --permanent

すると、エラーが発生。

こんな内容↓

Traceback (most recent call last):
File "/usr/bin/firewall-cmd", line 24, in
from gi.repository import GObject
ModuleNotFoundError: No module named 'gi'

python3だとfirewall-cmdが動かないんだってさ!

python2ならOKとのことなので、firewall-cmdをpython2で動くように変更。

firewall-cmdをpython2で動くように変更

vi /usr/bin/firewall-cmd

一行目
#!/usr/bin/python
↓
#!/usr/bin/python2
再度、firewallの内容確認
$ firewall-cmd --list-all-zones
$ firewall-cmd --zone=public --list-services --permanent

今度はちゃんとデータが返ってきた!

python3にするとyumが使えなくなるのでついでに修正

# vi /bin/yum

一行目
#!/usr/bin/python
↓
#!/usr/bin/python2

参考サイト: Radcules :CENTOS7にPython2.75からPython3.6をインストールして標準で使う方法!