python tkinter导入可移植性

python tkinter导入可移植性,python,tkinter,Python,Tkinter,我在家里的工作计算机和工作中的服务器上运行相同的非常小的python脚本,这台计算机将RDPs发送到服务器上。服务器使用公司标准的Python2,我在家里一直使用Python3。最近,我决定使用相同的脚本在这两个方面做相同的工作。一切都是一样的,除了一个人想要: from Tkinter import * 另一个想要一个字母大小写的变化: from tkinter import * 我如何使它像在不同python环境中工作的同一脚本一样可移植?我不想有两个脚本需要记住去关注。 有可能吗?这个

我在家里的工作计算机和工作中的服务器上运行相同的非常小的python脚本,这台计算机将RDPs发送到服务器上。服务器使用公司标准的Python2,我在家里一直使用Python3。最近,我决定使用相同的脚本在这两个方面做相同的工作。一切都是一样的,除了一个人想要:

from Tkinter import *
另一个想要一个字母大小写的变化:

from tkinter import *
我如何使它像在不同python环境中工作的同一脚本一样可移植?我不想有两个脚本需要记住去关注。
有可能吗?

这个
2to3
程序会将您的程序翻译成Python 3(有些,但并不总是完美的)。诀窍是以这样一种方式编写代码,使您的Python2能够成功(并且正确)转换


我建议您看看,这将有助于您维护兼容的源代码。

程序将执行(一些但并不总是完美的)程序到Python 3的转换。诀窍是以这样一种方式编写代码,使您的Python2能够成功(并且正确)转换


我建议您查看一下,这将有助于您维护兼容的源代码。

检查Python版本,并根据具体情况进行处理:

import sys

if sys.version_info[0] > 2:
    from tkinter import *
else:
    from Tkinter import *

检查Python版本并根据情况进行处理:

import sys

if sys.version_info[0] > 2:
    from tkinter import *
else:
    from Tkinter import *

或者尝试同时导入它们:-)


或者尝试同时导入它们:-)


您的导入行可以位于
try/except importorr
块内,或者您可以测试python的版本(使用
sys.version
),您的导入行可以位于
try/except importorr
块内,或者您可以测试python的版本(使用
sys.version
)你能详细说明一下这将如何解决OP的问题吗?很简单。我没有尝试过(不是我的风格),但是aliva的例子应该在任何一种环境下都可以使用——如果一次导入失败,另一次应该可以。你能详细说明一下这将如何解决OP的问题吗?很简单。我没有尝试过(不是我的风格),但aliva的示例应该可以在任何一种环境中使用——如果一种导入尝试失败,那么另一种尝试应该可以使用。