Pyglossary 似乎已安装但无法运行 - 错误消息 - 下一步怎么办?

Pyglossary 似乎已安装但无法运行 - 错误消息 - 下一步怎么办?

我是 Linux 和 Python 的新手。我正在尝试运行词汇表在 ubuntu 22.04.1 上的 Python 3.10.6(预装)上。

我使用 pip (pip install --upgrade pyglossary) 安装了它。出现警告,它已默认为用户安装,并且 /home/linux/.local/bin 不在路径上。我将其添加到路径中。

当我尝试运行它时收到以下错误消息:

[CRITICAL] Traceback (most recent call last):
  File "/home/linux/.local/bin/pyglossary", line 8, in <module>
    sys.exit(main())
  File "/home/linux/.local/lib/python3.10/site-packages/pyglossary/ui/main.py", line 790, in main
    sys.exit(0 if ui_module.UI().run(**runKeywordArgs) else 1)
  File "/home/linux/.local/lib/python3.10/site-packages/pyglossary/ui/ui_gtk.py", line 962, in __init__
    screenW, screenH = getWorkAreaSize()
  File "/home/linux/.local/lib/python3.10/site-packages/pyglossary/ui/ui_gtk.py", line 88, in getWorkAreaSize
    rect = monitor.get_workarea()
AttributeError: 'NoneType' object has no attribute 'get_workarea'

我之前曾尝试使用 pip 和 sudo apt 命令来安装它,但后来运行了 apt remove 和 pip uninstall,所以希望这没有任何关系。

我不知道下一步该做什么——有什么建议吗?

答案1

我按如下方式解决了它:使用编辑器打开此文件:/home/linux/.local/lib/python3.10/site-packages/pyglossary/ui/ui_gtk.py

转到第 88 行并稍微改变这个函数。

def getWorkAreaSize():
    display = gdk.Display.get_default()
    try:
      monitor = display.get_primary_monitor()
      rect = monitor.get_workarea()
      return rect.width, rect.height
    except:
      monitor = display.get_monitor_at_point(1,1)     
      rect = monitor.get_workarea()
      return rect.width, rect.height

rect.width 和 rect.height 的值不是由原始函数 display.get_workarea() 设置的。

这很可能是因为你(至少是我)使用了内置屏幕。你也在使用笔记本电脑吗?它们有一个内置屏幕设置。我认为主显示器的设置不存在,除非你将笔记本电脑连接到外接显示器(我的 4 分钱)

相关内容