You just need to make some changes to your code to support both Python2 and Python3. I'll briefly explain how to get my Python code to support Python2 and Python3 at the same time.
Discard Python versions prior to Python 2.6
Python versions prior to Python 2.6 lack some new features that can cause a lot of trouble with your migration effort. If not, give up support for the previous version.
Checking code with the 2to3 tool
2to3 is a python-brought code conversion tool that automatically converts python2 code into Python3 code. Of course, unfortunately, the converted code does not do any processing for python2 compatibility. So we don't really use 2TO3 to convert the code. Perform 2to3 t.py view the output information and fix the related issues.
Using python-3 to execute Python programs
2to3 can check out a lot of python2&3 compatibility issues, but there are a lot of problems that 2to3 can't find. After adding the-3 parameter, the program will run with Python2 and Python3 inconsistent on the console, and 2to3 the inability to handle the problem prompt. For example, Python3 and python2 have changed the processing rules of division. Using the-3 parameter to execute 4/2 will prompt deprecationwarning:classic int division.
From __future__ Import
"From __future__ import" will make use of Python's future features. Python's full future feature is visible __future__. All the characters in the Python3 become Unicode. Unicode characters in Python2 need to precede characters with u in the definition, but home U is not required in 3, and the program will not compile and pass after you add U. In order to resolve this issue you can "from the future import Unicode_literals", so that the behavior of Python2 characters will be consistent with Python3, the definition of ordinary characters in Python2 is automatically recognized as Unicode.
Import issue
Python3 "Less" a lot of python2 bags, in most cases these packages are changed a name. We can deal with these issues at import time.
Try: #python2
From userdict import userdict
#建议按照python3的名字进行import
From userdict import dictmixin as Mutablemapping
Except Importerror: #python3
From collections Import UserDict
From collections Import mutablemapping
Write a program using the Python3 method
Print is the keyword in python2, and print becomes a function in Python3. As a matter of fact, the print function is already in python2.6, so you can change it to print directly by following the hints given in 2to3. In the Python3 to the exception of the processing made some changes, this and print similar, directly follow the instructions in the 2to3 to modify.
Check the currently running Python version
Sometimes you may have to write different codes for Python2 and Python3, and you can check the Python version of the current system with the following code.
Import Sys
If Sys.version > ' 3 ':
PY3 = True
Else
PY3 = False
Six
Six provides a few simple tools to encapsulate the differences between Python 2 and Python 3. I don't recommend using six. If you don't need to support the Python version before python2.6, it's easier to deal with compatibility issues without six. Using six will make your code more like Python2 than Python3.
The popularity of Python3 needs to be driven by every pythoner, and you may not be able to upgrade to Python3 immediately, but start writing code that is compatible with Python3 now and upgrading to python3 when conditions are ripe.