Python’s rich variety of standard libraries, third-party libraries, and modules is one reason for its popularity. PyPI is a repository that you need to install before you want a third-party repository. As a user, it helps us find software developed and shared by the Python community; As a developer, you can use PyPI to distribute your software. How has the community evolved since PyPI was founded in 2003? What is the status quo? What are the interesting findings, this paper will conduct preliminary exploration with you.

One of the cool things about building a PyPI image is that it gives me a lot of data. With that in mind, I decided to explore how the entire ecosystem has changed since I founded PyPI in 2003. However, most of the subsequent analysis began in 2005, when PyPI added Upload_time.

The figure below shows the number of Active Python Packages from 2005 to 2018, with Old Packages in blue and New in orange.

Over those fourteen years, the Python ecosystem has grown steadily. With PyPI almost fully accepted in the Python community, it grew rapidly over the years. Since then, the number of active Packages has increased by 28% to 48% per year (active Packages are those that have a release or a new release).

During those 14 years, the Python ecosystem has steadily grown. For PyPl, during the years when it was almost fully accepted by the Python community, the number of Packages (those that have had at least one new release or are just coming online) grew at a robust rate of 28% to 48% cagR.

As shown in the figure, 66% of Packages are newly released and the vast majority of these are not maintained continuously; Packages maintained for more than a year remained strong; The number of new Packages coming online has increased by 31% to 59% annually, although the growth rate has slowed down, but the momentum is still strong. This means that, overall, Packages is releasing more and more releases, indicating that PyPl is becoming more mature.

What surprised me most about the results was the number of releases per Packages. I had been upgrading Packages dependency libraries, such as AWS #15 BotoCore, based on personal experience, but the CCXT library “stood out” was something I didn’t expect. In less than two years CCXT has released 4,659 versions, more than three times the number of other Packages. But when I tried to load it, the libraries. IO page took over 30 seconds to load, so I’m not sure if the maintenance is good or bad, but it’s pretty impressive!

Another interesting finding is the change in distribution Packages practices. The biggest change was the release of Python 3. Binary Wheels were introduced in 2012 and codify into PEP 427 and are generally considered to be the best way to distribute Python Packages, but the adoption cycle for Packages authors will take time. Python Wheels can track the adoption of 360 PyPI Packages as shown below:

(Image: pythonwheels.com/)

Not every Packages will be released as wheel, especially since Psycopg2 will soon be discontinued. There are conflicts between the bundled LibSSL and the system’s own LibSSL, but these are not common. Therefore, it is hoped that more Packages can be distributed as wheel in the future, and the current strong momentum can reach 90% or even more. If the trends in the chart below continue, it may be possible by 2022.