如何解决(写出)python2和python3不兼容的问题
1、这里有两个兼容思路:第一,不考虑跨平台,生成操作系统的可执行文件,而非py代码文件。第二,通过代码实现(跨平台跨解释器,这也是小编接下来要教小伙伴的东西)。最典型的问题——Python的内置图形库,Tkinter图形库。我们都知道,我们Python2中导Tk包的时候为import Tkinter,而在Python3中则为import tkinter。如图(图为python3执行import Tkinter报错和Python2执行import tkinter报错)都是提示没有找到模块名,显然,Python3没有考虑太多向下兼容的问题,而问题来了,国内有绝大部分linux服务器上安装的还是python2(也是大部分linux默认的python解释器)

2、其实我们在代码方面要做的事相当简单,还是以Tk坡纠课柩inter库为例:如果python解释器为3,我们就import tk足毂忍珩inter,如果是python2,我们就import Tkinter,这样是不是相当简单?在这之前,我们需要获得Python解释器版本号,这里sys模块提供了一个变量(记得是一个模块内的变量),即version在python3打印出这个变量看看是什么?可以看到,这个变量正确的打印出我们要的解释器版本号。python3.4.3

4、我们知道怎么获得版本信息之后,想根据主版本来判断导入的模块名,不是很简单吗?我们只需要给模块起个别名即可。import sysif(sys.version[0] == '3'): import tkinter as mytkelse: import Tkinter as mytkwindow = mytk.Tk()window.mainloop()这样是不是就解决了模块名的问题?

