解决 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, in <module>
from gi.repository import GObject
ModuleNotFoundError: No module named 'gi'

二、问题原因

网上查了下,出现这个问题是,更新了系统的 Python 版本,且 version >= Python3,而 CentOS 7 系统自带的是 Python2.7,所以出现了这个错误。

可能是一个 python 代码需要 python3 的运行环境,所以有人把系统的 python 版本直接升到 3.7 了,导致现在 firewall-cmd 运行不了。

三、解决办法

解决办法也很简单,修改 /usr/bin/firewall-cmd 文件,在 python 后面添加数字 2.7 即可:

/usr/bin/firewall-cmd python2.7

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

赞(0)
关注我们
未经允许不得转载:老王博客 » 解决 CentOS 7 执行 firewall-cmd 防火墙命令遇到的 ModuleNotFoundError: No module named ‘gi’

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址