Top Downloaded Python Packages on PyPI in the Past Year
This article reviews the most downloaded Python packages on PyPI over the past year, detailing their functions, popularity rankings, key features, and example usage, covering tools such as urllib3, six, botocore, pip, requests, certifi, RSA, and more.
Today we share the Python packages with the highest download counts on PyPI in the last year, discussing their purposes, relationships, and why they are so popular.
1. urllib3 – 893 million downloads
urllib3 is an HTTP client for Python that provides many features not available in the standard library.
Thread safety
Connection pooling
Client SSL/TLS verification
Multipart file upload support
Retry and redirect handling
gzip and deflate encoding
HTTP and SOCKS proxy support
Although its name suggests it is a successor to urllib2, it is a separate library; for core‑only needs you may use urllib.request instead. Most end users prefer the higher‑level requests library, but urllib3 ranks first because about 1,200 other packages depend on it.
2. six – 732 million downloads
six is a compatibility library that enables code to run on both Python 2 and Python 3. It provides functions that mask syntax differences, e.g., six.print_() works on both versions.
Key points:
The name comes from 2 × 3 = 6.
Similar libraries include future .
To convert code to Python 3 only, see 2to3 .
Although still popular, the community encourages dropping Python 2 support now that it is officially end‑of‑life.
3. botocore, boto3, s3transfer, awscli
These four projects are listed together because they are interrelated:
botocore – 660 million downloads (rank 3)
s3transfer – 584 million downloads (rank 7)
awscli – 394 million downloads (rank 17)
boto3 – 329 million downloads (rank 22)
botocore is the low‑level AWS interface; boto3 builds on it to provide high‑level access to services such as S3 and EC2. The AWS CLI also relies on botocore. s3transfer manages S3 transfers and is a dependency of boto3, awscli, and other projects.
4. pip – 627 million downloads
pip is the standard package installer for Python, allowing easy installation from the Python Package Index or private repositories.
Recursive name: "Pip Installs Packages".
Install with pip install <package> ; uninstall with pip uninstall <package> .
Supports requirements.txt for reproducible environments.
Works well with virtualenv to create isolated environments.
5. python-dateutil – 617 million downloads
python‑dateutil extends the standard datetime module with powerful parsing capabilities.
<code>from dateutil.parser import parse
log_line = "INFO 2020-01-01T00:00:01 Happy new year, human."
timestamp = parse(log_line, fuzzy=True)
print(timestamp) # 2020-01-01 00:00:01
</code>6. requests – 611 million downloads
Requests builds on urllib3 to provide a simple API for HTTP requests.
<code>import requests
r = requests.get("https://api.github.com/user", auth=(user, pass))
print(r.status_code) # 200
print(r.headers["content-type"]) # application/json; charset=utf8
print(r.encoding) # utf-8
print(r.text) # raw response body
print(r.json()) # parsed JSON
</code>7. s3transfer (see item 3)
The package is already described under item 3.
8. certifi – 552 million downloads
certifi provides a curated collection of root certificates, enabling Python code to verify SSL/TLS certificates just like modern browsers.
9. idna – 527 million downloads
idna implements the Internationalised Domain Names in Applications (IDNA) protocol, allowing conversion between Unicode domain names and their ASCII representation.
<code>import idna
print(idna.encode('ドメイン.テスト')) # b'xn--eckwd4c7c.xn--zckzah'
print(idna.decode('xn--eckwd4c7c.xn--zckzah')) # ドメイン.テスト
</code>10. PyYAML – 525 million downloads
PyYAML is a YAML parser and emitter for Python, allowing reading and writing of YAML files and conversion between Python objects and YAML.
<code># Using ConfigParser (only strings)
config.getint("section", "my_int")
# Using PyYAML (type‑aware)
config["section"]["my_int"]
</code>11. pyasn1 – 512 million downloads
pyasn1 is a pure‑Python implementation of ASN.1 types and DER/BER/CER encoding, the historic data‑serialization format used in many network protocols and certificates.
12. docutils – 508 million downloads
docutils is a modular system that converts plain‑text reStructuredText documents into formats such as HTML, XML, and LaTeX. It powers the generation of Python Enhancement Proposals (PEPs) and is used by Sphinx for documentation.
13. chardet – 501 million downloads
chardet detects the character encoding of text data.
<code>chardetect somefile.txt
# output: somefile.txt: ascii with confidence 1.0
</code>Many libraries (e.g., requests) depend on chardet for automatic encoding detection.
14. RSA – 492 million downloads
RSA is a pure‑Python implementation of the RSA public‑key algorithm, supporting encryption/decryption, signing/verification, and PKCS#1 v1.5 key generation.
<code>import rsa
# Bob creates a key pair:
(bob_pub, bob_priv) = rsa.newkeys(512)
# Alice encrypts a message for Bob:
crypto = rsa.encrypt('hello Bob!', bob_pub)
# Bob decrypts the message:
message = rsa.decrypt(crypto, bob_priv)
print(message.decode('utf8')) # hello Bob!
</code>15. jmespath – 473 million downloads
jmespath provides a declarative query language for extracting data from JSON structures in Python.
<code>import jmespath
d = {"foo": {"bar": "baz"}}
print(jmespath.search('foo.bar', d)) # baz
# Using a wildcard to get all names:
d = {"foo": {"bar": [{"name": "one"}, {"name": "two"}]}}
print(jmespath.search('foo.bar[*].name', d)) # ['one', 'two']
</code>The article also contains promotional material for a free Python public‑course QR code, which is omitted from this academic summary.
Python Programming Learning Circle
A global community of Chinese Python developers offering technical articles, columns, original video tutorials, and problem sets. Topics include web full‑stack development, web scraping, data analysis, natural language processing, image processing, machine learning, automated testing, DevOps automation, and big data.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.