It is easy to find questions asking if one should start with python 2 or python 3, and it is a consensus that python 2 is the way to go as it is has more libraries and thus better supported.
Python 3 was launched back on 2008 and this question already addressed a migration. As it was too soon, the solution was to wait.
5 years have passed now and a good bunch of libraries already support python 3. At the time I write this question, according to this page 244 packages on pypi support python 3 while 156 does not. On the top 30 most downloaded packages, 24 support python 3
Following this I feel safe enough to start migrating from python 2 to 3 and also avoiding telling people to start on python 2
My reasons explained, the question is:
What concerns should I have when migrating from python 2 to 3?
Not just code syntax and replacements, as its easy to find a conversion tool to do the 80% of the job, but general concerns, like:
- Do virtual environments mechanism changes?
- Building, packaging and distribution differences
- Will I have only cPython? (Looks like Jython has a long way to go to reach python 3)
- Multi threading/processing programming. Always a delicate subject
- Testing. Any changes?
- What common things that I can still do like in python 2 but I should stop and start doing in an other way? I feel that a code replacement tool will change the code to make it just "runnable", but it will not use the correct or better option if the option itself involves big changes
ps: This question was asked on stack overflow, but was closed as too broad. Anyway, I felt that the correct place is here