Skip to content

59% of maintained packages support Python 3

October 23, 2014

I ran some statistics on PyPI:

  • 50377 packages in total,
  • 35293 unmaintained packages,
  • 15084 maintained packages.

Of the maintained packages:

  • 5907 has no Python classifiers,
  • 3679 support only Python 2,
  • 1188 support only Python 3,
  • 4310 support Python 2 and Python 3.

This means:

  • A total of 5498 packages support Python 3,
  • 36% of all maintained packages declares that they support Python 3,
  • 24% of all maintained packages declares that they do NOT support Python 3,
  • and 39% does not declare any Python support at all.

So: The 59% of maintained packages that declare what version they support, support Python 3.

And if you wonder: “Maintained” means at least one versions released this year (with files uploaded to PyPI) *or* at least 3 versions released the last three years.

From → python, python3

8 Comments
  1. What if you remove all Zope related packages from the list ?

  2. Then:

    3559 support only Python 2,
    1188 support only Python 3,
    4285 support Python 2 and Python 3.

    The ratio of Python 3 support to not Python 3 support is thus 60%

    So it’s not a big difference. The vast amount of packages on PyPI are unmaintained packages with only one or no upload.

    About 2000 packages are filtered out. 1500 of them are counted as “unmaintained”.

  3. You write “36% of all maintained packages support Python 3” yet the title states “59% of maintained packages support Python 3”.

    • 59% of all maintained packages who declare what versions they support. I clarified.

      39% we simply do not know what Python versions they support. Many of them are new, and may very well only support Python 3.

      • Clarified where? The title still is “59% of maintained packages support Python 3” which is not backed by data without qualification.
        Additionally you write:
        “So: The ratio of Python 3 support to not Python 3 support is thus 59%, as far as we can tell from the packages themselves.”
        I presume you count only packages which declare what versions they support (there’s no other way). In this case there’s 1188+4310=5498 packages which support Python 3 and 3679 packages which do not support Python 2. From this it’s clear that the ratio of Python 3 support to not Python 3 support is thus 5498/3679=1,4944… I don’t see how you obtained this 59%.

      • You are right. 5498 + 3679 = 9177 maintained packages who declare what Python version the support. Of them 5498 support Python 3. That’s 5498 / 9177. Which is in fact 59.910…%, but I didn’t bother about doing proper rounding, which is how I reached 59%. I should really say 60%, but it’s not really that important. I guess I could have said “three fifths”.

  4. Can you put a link to the list?

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: