我想制作一个在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
再次感谢您的帮助
答案 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代码中给每个方法名称相同。并在这里调用它们