如何在几个Python版本中使用一个源代码?

时间:2014-06-13 09:39:42

标签: python versions

我想制作一个在2.7和3.4版本上运行的Python程序。我只做了很少的改动就像打印(“”,end =“”)一样。

是否有像

这样的标签
if __name__ == "__main__":

或其他什么,我可以将其放入我的代码中以获得类似的内容:

1. python_version = platform.version_tuple()
2. if python_version[0] == 3:
3.     print("myprint", end="")
4. else:
5.     print "my second print",

如何使用此代码避免任何编译错误?


感谢您的所有答案,我的问题不是很明确,但您确实提供了帮助。我在阅读你的答案后找到了这个详细的网站:

http://python3porting.com/noconv.html

它解释了如何将python2和python3同时处理成相同的代码而不将其分成2个冗余部分。

正确的方法是使用sys.version

1. import sys
2. if sys.version < '3':
3.     #some code for python 3.X
4. else:
5.     #some code for older python

或者使用未来图书馆的print_function

1. from __future__ import print_function

有关打印问题和ImportError错误,如下所示

1. try:
2.     from urllib.request import urlopen
3. except ImportError:
4.     from urllib import urlopen

再次感谢您的帮助

2 个答案:

答案 0 :(得分:3)

在导入任何其他内容之前执行此操作:

from __future__ import print_function

现在你只需使用python3.x样式打印...

答案 1 :(得分:0)

你可以使用sys

写两个代码,比如python3.py和python2.py

import sys   
a= sys.version_info
if a.major=='2':
   import python2
   #run functions of python 2 this contain code compiles in python2
else:
   import python3
   #run functions of python 3 this contain code compiles in python3

更容易在python代码中给每个方法名称相同。并​​在这里调用它们