发现问题
博主一直习惯使用Mint作为平时的开发环境,忽然有一天无法打开设置界面了,虽然说这并不影响我的工作,毕竟很少修改系统设置,但是一旦遇到需要修改的时候就非常的头疼。尤其是在使用多个屏幕的时候需要调整屏幕顺序必须使用到系统设置,打不开系统设置界面真的会令人抓狂。
终于,今天博主我忍无可忍,在一顿搜索之后并没有发现任何关于此问题的解决方法,难道没有人遇到过这个奇葩的问题?还是说我搜索的姿势不对?
不行,我今天必须解决这个问题!
冷静分析
界面之所以打不开应该跟桌面环境有关系,Linux桌面环境依赖通常比较多,很有可能是在我某一次安装某个软件的时候导致依赖出现问题。但是几个月过去了,鬼知道我都安装了些什么玩意。
方向有了,就是从桌面环境找起。Mint默认的桌面环境是Cinnamon,既然直接鼠标点击按钮无法弹出界面,极有可能是报错了,换成命令行执行应该就能看到错误。
于是我打开终端输入 cinnamon 然后按TAB键,出来如下命令
$ cinnamon
cinnamon cinnamon-killer-daemon cinnamon-screensaver-command cinnamon-settings-users
cinnamon2d cinnamon-launcher cinnamon-screensaver-lock-dialog cinnamon-slideshow
cinnamon-control-center cinnamon-looking-glass cinnamon-session cinnamon-subprocess-wrapper
cinnamon-desktop-editor cinnamon-menu-editor cinnamon-session-cinnamon cinnamon-xlet-makepot
cinnamon-file-dialog cinnamon-preview-gtk-theme cinnamon-session-cinnamon2d
cinnamon-install-spice cinnamon-remove-application cinnamon-session-quit
cinnamon-json-makepot cinnamon-screensaver cinnamon-settings
我首先执行了一下 cinnamon-control-center,成功打开界面,没有报错。
很好,至少能修改显示器顺序了,不过就是依然无法打开全部的设置。接着我执行了cinnamon-settings 成功报错,错误如下
Traceback (most recent call last):
File "/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", line 607, in
window = MainWindow()
File "/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", line 243, in __init__
for module in modules:
File "/usr/share/cinnamon/cinnamon-settings/modules/cs_backgrounds.py", line 5, in
import imtools
File "/usr/share/cinnamon/cinnamon-settings/bin/imtools.py", line 623, in
if Image.VERSION == '1.1.7':
AttributeError: module 'PIL.Image' has no attribute 'VERSION'
很显然是因为PIL导致的。我瞬间明白了,我在调试Py脚本的时候用到了PIL,安装的时候版本可能比较新,覆盖了原来的旧版本,导致了依赖问题。这里显示新版本PIL已经没有VERSION这个属性了。So...
找到那个报错的文件,讲判断VERSION的那个if注释掉,并增加 if True: 就可以了。
修改完保存,执行 cinnamon-settings 成功打开系统设置。使用鼠标点击系统设置按钮也正常显示,Nice!
得出结论
Python 安装库还是用虚拟环境比较好,全局环境有风险。
遇到问题要思考导致问题的本质原因。
本文链接:https://www.92ez.com/?action=show&id=23503
!!! 转载请先联系non3gov@gmail.com授权并在显著位置注明作者和原文链接 !!! 小黑屋
提示:技术文章有一定的时效性,请先确认是否适用你当前的系统环境。