我正在阅读艾伦·唐尼的书Think Python。对于第4章,必须使用一组名为Swampy的模块。我已经下载并安装了它。
问题是模块是用Python 2编写的,我有Python 3(在Windows 7 RC1中)。当我从Swampy运行TurtleWorld模块时,我收到有关print和exec语句的错误消息,这些语句现在是Python 3中的函数。我通过在GUI和World模块的代码中包含带有print和exec的括号来修复这些错误。我还得到一个错误,即无法找到Tkinter模块。事实证明,在Python 3中,模块名称拼写为小写t。
第三个错误更难:ImportError:没有名为tkFont的模块。
有人有任何想法吗?谢谢。
答案 0 :(得分:6)
看起来tkinter终于赶上了Python 3 - tkFont已成为tkinter.font
http://docs.pythonsprints.com/python3_porting/py-porting.html
#!/usr/bin/env python3.2
# -*- coding: utf-8 -*-
#
# font_ex.py
#
import tkinter
top = tkinter.Tk()
butt01 = tkinter.Button(top, text="Hello World", font=('Helvetica', 24,))
custom_font_serif = ('Times', 24, 'bold')
butt02 = tkinter.Button(top, text="Hello World", font=custom_font_serif)
custom_font_sans = ('Helvetica', 36, 'italic')
butt03 = tkinter.Button(top, text="Hello World", font=custom_font_sans)
butt01.pack()
butt02.pack()
butt03.pack()
top.mainloop()
答案 1 :(得分:3)
许多重要的第三方库尚未针对Python 3进行重写;你现在必须坚持使用Python 2.x.没有其他办法了。正如official Python download page上所述,
如果您不知道要使用哪个版本 使用,从Python 2.6.4开始;更多 现有的第三方软件是 兼容Python 2而不是Python 3 现在。
答案 2 :(得分:1)
对于MAC用户:我是一个Python新手,遇到了完全相同的问题。我正在写这篇文章,所以其他人不要浪费几个小时试图解决这个问题。这是你做的:
答案 3 :(得分:0)
有一个转换工具,用于将Python 2代码转换为与Python 3一起使用:http://svn.python.org/view/sandbox/trunk/2to3/
不确定这是如何扩展到第三方库的,但可能值得将其传递给沼泽的代码。