2

我不确定 Grail 浏览器现在是否是一个不错的选择,但我想尝试一下,因为我在 Firefox-Fermi 上运行的图形存在一些问题。接下来,是我在尝试 grail-0.6 (tgz) 后得到的

# python grail.py 
Traceback (most recent call last):
File "grail.py", line 43, in ?
from Tkinter import *

充分安装“tkinter”后,我再次运行“grail.py”,我得到

# python grail.py 
/root/grail-0.6/grailbase/app.py:6: Deprecation Warning: the regex module is   
deprecated; please use the re module
import regex
/usr/lib/python2.4/regsub.py:15: DeprecationWarning: the regsub module is  
deprecated; please use re.sub()
DeprecationWarning)
Traceback (most recent call last):
File "grail.py", line 499, in ?
main()
File "grail.py", line 108, in main
app = Application(prefs=prefs, display=display)
File "grail.py", line 248, in __init__
self.stylesheet = Stylesheet.Stylesheet(self.prefs)
File "/root/grail-0.6/Stylesheet.py", line 21, in __init__
self.load()
File "/root/grail-0.6/Stylesheet.py", line 45, in load
massaged.append((g, c), v % fparms_dict)
TypeError: append() takes exactly one argument (2 given)

但是现在,我根本无法理解该消息。你能就这个问题给我建议吗?

4

1 回答 1

1

哇 - 这是过去的爆炸!我的建议是放弃:Grail 已经十几年没有人碰过了。它死了。

您收到的错误消息源于 Python 1.6(2000 年 9 月 5 日发布)中的更改。以下是发行说明中的​​消息:

  • 列表的 append() 方法不能再使用多个参数调用。这用于附加由所有参数组成的单个元组,但没有记录。要追加元组,请使用 eglappend((a, b, c))。

这样你就可以:

  1. 放弃。推荐的 ;-)
  2. 安装一个古老版本的 Python;或者,
  3. 将该行更改为

    massaged.append(((g, c), v % fparms_dict))

看看接下来会发生什么;-)

关于下一个问题

Python 0.9.1非常古老,从 1991 年初开始。在 1.0 发布之前,该语言发生了许多变化。

根据旧的 Grail 主页,Grail 0.6:

需要 Python 1.5 或更高版本,以及 Tcl/Tk 8.0 或更高版本。

因此,如果您决心追求这一点,请找到 Python 1.5 ;-) 请注意,.append()语义在 1.6 版中已更改,因此最初.append()伤害您的原始代码在 1.5 中应该仍然可以正常工作。

于 2013-11-06T01:36:54.873 回答