我是 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 分钱)