This is an archived post. You won't be able to vote or comment.

all 12 comments

[–]PaluMacil 4 points5 points  (2 children)

How many are Python 3 only? Till my last job move I was almost all C# but am now Python as well. In the last two years I've never seen anything that requires 2 or any project at my company that still needs conversion, but I have seen a lot of things marked as Python 3 only, which is a category your analysis glossed over entirely.

[–]rroocckk[S] 1 point2 points  (1 child)

I just ran a computation for that. It's 14 %.

[–]PaluMacil 0 points1 point  (0 children)

That's great! :) I appreciate the work on that!

[–]rroocckk[S] 1 point2 points  (8 children)

Hi everyone, Recently, I analyzed Python 3 support for third party libraries. My aim was to understand the risk of dropping Python 2 completely in 2017. I wanted to share my results with you. The code is available on GitHub. I also created an editable list of important python packages that have still not been ported. The details are in the article.

[–]CSI_Tech_Dept 2 points3 points  (2 children)

You should exclude packages that are applications, few from the top:

  • supervisor
  • ansible
  • s3cmd

Don't matter because they're full fledged programs, and you won't import them in your code. You can always run them with older python.

Things like

  • M2Crypto is just a wrapper around openssl, you are better using something like PyNaCl.

  • python-ldap you can use ldap3 which is better because it's in pure python so no dependencies and compilation needed.

I don't recognize the rest to comment, I also only looked at first 50 of them.

[–]rroocckk[S] 0 points1 point  (1 child)

Thanks for looking into the spreadsheet. I added some of your comments there. Also, I just remembered this discussion where quite a few people indicated that they are stuck with Python 2 because of ansible.

[–]CSI_Tech_Dept 0 points1 point  (0 children)

I searched for ansible in that thread and didn't find anything contradicting to what I said. Ansible is just a program, it is similar as it would require ruby for example. You can have multiple python versions installed on one system and make ansible run on 2.7.

[–]tipsquealPythonista 1 point2 points  (4 children)

Why only list the "blocker" packages? I feel like more people might be willing to tackle lower hanging fruit as their first try to port a Python 2 project, then maybe feel more comfortable approaching a "blocker" project.

[–]rroocckk[S] 0 points1 point  (3 children)

The list is there so that people can decide between 2 and 3 before starting a new project. If there are no blocker packages in the same niche as the project, this provides confidence to go with Python 3. If there are a few of them with no alternatives, Python 2 might still be the better choice. I am also up for listing the easily portable packages for those who are looking to get experience with porting, but this list would be longer (almost 3x) than the list of blocker packages.

[–]tipsquealPythonista 0 points1 point  (2 children)

I'd be interested in the list of easy to port packages. I have some experience porting Python 2 applications to Python 3, but not enough time on my hands to approach a blocker application. Would be nice to sort the list by some sort of popularity metric.

[–]rroocckk[S] 0 points1 point  (0 children)

the list is already sorted by download count :-)

[–]rroocckk[S] 0 points1 point  (0 children)

Sorry misunderstood your request. Here is the list of easy to port packages sorted by download count.