如何将python3.6.2中的代码转换为python2.6.6

如何将python3.6.2中的代码转换为python2.6.6,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我已经用python3.6.2编写了代码,但是在我的生产服务器中,python2.6.6是可用的,所有语法有什么不同 在Python3.6.2中,我对循环、函数和列表使用了print(如果有的话) 请帮助我。打印报表 Python 2: print 'Hello, World!' print('Hello, World!') print "text", ; print 'print more text on the same line' i = 1 print 'before: i =

我已经用python3.6.2编写了代码,但是在我的生产服务器中,python2.6.6是可用的,所有语法有什么不同

在Python3.6.2中,我对循环、函数和列表使用了print(如果有的话)


请帮助我。

打印报表

Python 2:

print 'Hello, World!'  
print('Hello, World!')  
print "text", ; print 'print more text on the same line'
i = 1
print 'before: i =', i
print 'comprehension: ', [i for i in range(5)]
print 'after: i =', i
Python 3:

print('Hello, World!') 
print("some text,", end="") 
print(' print more text on the same line')
i = 1
print('before: i =', i)
print('comprehension:', [i for i in range(5)])
print('after: i =', i)
用于循环

Python 2:

print 'Hello, World!'  
print('Hello, World!')  
print "text", ; print 'print more text on the same line'
i = 1
print 'before: i =', i
print 'comprehension: ', [i for i in range(5)]
print 'after: i =', i
Python 3:

print('Hello, World!') 
print("some text,", end="") 
print(' print more text on the same line')
i = 1
print('before: i =', i)
print('comprehension:', [i for i in range(5)])
print('after: i =', i)

主要的区别是括号(),因为它们在Python3中比在两个中更常用

例如,在python 3中: 打印(字符串)

在python 2中: 打印字符串

因此,这是您必须进行的主要更改(打印语句)

还有两个开源程序可以转换代码(您可以在PyPI.org上找到):

2to3-用于将python 2转换为python 3

3to2-用于将python 3转换为python 2

从python文档中可以看出,这些方法经常有效,但并不完美:

为了保持兼容,您创建的任何新模块都应该 在其顶部至少有以下代码块:


这将解决打印中的括号问题,5/2=2.5(在python3中)与2(在python2中)。但是,可能还有其他一些问题。您需要手动检查并更正这些错误。

那么,您尝试了哪些内容,哪些内容不起作用?那么,运行它应该会告诉您是否存在语法错误。。。如果您使用的是外部库,那么您需要安装这些库,这意味着您可能具有管理员权限,因此您也可以安装Python3。我尝试调用myfunc(Formid,Formvalue)下面的函数,其中Formid和Formvalue在调用函数之前被分配了一些值,我得到名称错误:名称“FormId”未定义这肯定不是版本兼容性问题,但可能是代码中的某个问题。请确保它在Python2.7中工作。