运维

运维相关知识和内容

CentOS 7 执行 firewall-cmd 防火墙命令遇到的 ModuleNotFoundError: No module named gi

一台 CentOS Linux release 7.6.1810 服务器,使用 firewall-cmd 查看防火墙状态时,出现了 ModuleNotFoundError 的错误:No module named ‘gi’,解决方法。

一、问题描述

在 CentOS 7 上执行 firewall-cmd --state 时,返回如下错误信息:

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

二、问题原因

百度了一下,出现这个问题的原因是系统的 Python 版本为Python3,而 CentOS 7 系统默认自带的是 Python2.7,所以现在 firewall-cmd 运行不了。

三、解决办法

修改 /usr/bin/firewall-cmd 文件,在 python 后面添加数字 2.7 即可。


之后再执行 firewall-cmd --state 命令就正常了。