Python PyGTK教程错误?

Python PyGTK教程错误?,python,pygtk,Python,Pygtk,我正在使用Python 2.7和PyGTK 2.24。我正在使用以下教程。请阅读代码上下文 下面的代码块(在下面重印)在我输入它时抛出了以下错误(verbatum): 用法:packbox.py num,其中num是1、2或3 回溯(最后一次调用):文件“C:/GTKTutorial/packbox.py”, 第161行,在 系统出口(1)系统出口:1 此外,如果我将代码更改为以下内容以克服第一个错误,则会收到下一条错误消息: if __name__ =="__main__": if

我正在使用Python 2.7和PyGTK 2.24。我正在使用以下教程。请阅读代码上下文

下面的代码块(在下面重印)在我输入它时抛出了以下错误(verbatum):

用法:packbox.py num,其中num是1、2或3

回溯(最后一次调用):文件“C:/GTKTutorial/packbox.py”, 第161行,在 系统出口(1)系统出口:1

此外,如果我将代码更改为以下内容以克服第一个错误,则会收到下一条错误消息:

if __name__ =="__main__":
    if len(sys.argv) != 1:
       sys.stderr.write("usage: packbox.py num, where num is 1, 2, or 3.\n")
       sys.exit(1)
    PackBox1(string.atoi(sys.argv[1]))
    main()
回溯(最后一次调用):文件“C:/GTKTutorial/packbox.py”, 第162行,在 PackBox1(string.atoi(sys.argv[1])索引器:列表索引超出 射程


怎么了?如何修复代码以便使用教程>

您需要使用
packbox.py 1
packbox.py 2
packbox.py 3
从命令行调用它


这将导致有两个参数(程序名称和您传递给它的第一个参数),因此您不会触发
sys.exit(1)
,并且
argv[1]
将是一个有效的索引访问。

要从空闲状态直接运行PackBox.py

替换:

if __name__ =="__main__":
    if len(sys.argv) != 2:
        sys.stderr.write("usage: packbox.py num, where num is 1, 2, or 3.\n")
        sys.exit(1)
    PackBox1(string.atoi(sys.argv[1]))
    main()  
与:

要查看所有三个示例小部件排列,请将参数(3)替换为参数(1)和(2)。点击X退出窗口;退出按钮在此代码中未连接

if __name__ =="__main__":
    if len(sys.argv) != 2:
        sys.stderr.write("usage: packbox.py num, where num is 1, 2, or 3.\n")
        sys.exit(1)
    PackBox1(string.atoi(sys.argv[1]))
    main()  
if __name__ == "__main__":
    packbox = PackBox1(3)
    main()