Python 2.7 Readiness

Python 2.7 support graph for the 360 most popular Python packages!

What is this about?

Python 2.7 is a version of Python that is past its End Of Life. This site shows Python 2.7 support for the 360 most downloaded packages on PyPI:

  1. 253 green packages (70.3%) have dropped support for Python 2.7;
  2. 107 white packages (29.7%) still support Python 2.7.

Package 'x' is white. What can I do?

There can be many reasons a package is still supporting Python 2.7:

  • If you are package maintainer, it's time to start dropping support (if you haven't already). Here is an in-depth guide to Dropping support for older Python versions. If you are not able to give the time needed, please seek for help from the community.

  • If you are user of the package, send a friendly note to the package maintainer. Or fork it, and send a pull request to help move the project towards dropping Python 2.7 support.

How do you identify Python 2.7 support?

We look for the Programming Language :: Python :: 2.7 classifier on the latest release of the project, via PyPI's JSON API.

Top 120

botocore ✓ s3transfer ✓ colorama ✗ urllib3 ✓ six ✓ python-dateutil ✗ requests ✓ setuptools ✓ futures ✗ chardet ✓ pyyaml ✓ jmespath ✓ pip ✓ certifi ✓ idna ✓ docutils ✓ rsa ✓ awscli ✓ pysam ✓ pyasn1 ✗ boto3 ✓ wheel ✓ typing ✗ ipaddress ✗ configparser ✓ pytz ✗ numpy ✓ enum34 ✗ pathlib2 ✗ future ✗ scandir ✗ contextlib2 ✓ pyparsing ✓ zipp ✓ markupsafe ✓ cffi ✓ jinja2 ✓ cryptography ✓ pycparser ✗ importlib-metadata ✓ boto ✗ backports-functools-lru-cache ✓ click ✓ packaging ✓ attrs ✓ protobuf ✓ funcsigs ✗ pycrypto ✓ pymysql ✓ pandas ✓ ecdsa ✗ mock ✓ lxml ✓ hvac ✓ redis ✓ importlib-resources ✓ singledispatch ✓ pyasn1-modules ✗ pillow ✓ werkzeug ✓ itsdangerous ✓ psutil ✗ scipy ✓ wcwidth ✗ supervisor ✗ python-jose ✓ pyopenssl ✓ html5lib ✗ py ✗ monotonic ✓ functools32 ✓ sentry-sdk ✗ decorator ✓ pytest ✓ flask ✓ cython ✗ setuptools-scm ✓ datadog ✗ lockfile ✗ pluggy ✓ paramiko ✓ python-daemon ✓ bz2file ✗ tqdm ✓ cachetools ✓ more-itertools ✓ wrapt ✓ dnspython ✓ google-auth ✓ websocket-client ✓ pbr ✗ statsd ✓ atomicwrites ✗ tenacity ✓ sqlalchemy ✓ oauthlib ✓ pystache ✓ s3cmd ✗ docopt ✗ netaddr ✓ webencodings ✗ pymongo ✓ httplib2 ✗ requests-oauthlib ✗ bcrypt ✓ pyjwt ✓ grpcio ✓ elasticsearch ✓ pynacl ✓ kazoo ✓ subprocess32 ✗ xlsxwriter ✓ beautifulsoup4 ✓ google-api-core ✓ selenium ✓ pexpect ✗ reportlab ✓ pypdf2 ✓ asn1crypto ✗ pika ✓

Top 120 - 240

olefile ✗ requests-file ✓ python-magic ✗ virtualenv ✓ tldextract ✓ ptyprocess ✗ mechanize ✓ scikit-learn ✓ mccabe ✓ pygments ✓ mysql-connector ✗ xhtml2pdf ✓ jsonschema ✓ dill ✓ dicttoxml ✓ coverage ✓ python-bidi ✗ arabic-reshaper ✓ jsonrpclib ✓ matplotlib ✓ imgkit ✗ slowaes ✓ cycler ✓ simplejson ✗ kombu ✓ promise ✗ pycodestyle ✓ bleach ✓ amqp ✓ toml ✗ pyflakes ✓ redis-py-cluster ✗ kiwisolver ✓ googleapis-common-protos ✓ spotinst-agent ✗ ansible ✓ psycopg2 ✓ oauth2client ✗ billiard ✓ babel ✓ soupsieve ✓ tornado ✓ tensorflow-metadata ✓ zope-interface ✓ tensorflow-datasets ✓ orderedmultidict ✗ celery ✓ pyobjc-framework-quartz ✓ pyobjc ✓ distlib ✗ pyobjc-framework-servicemanagement ✓ pyobjc-framework-eventkit ✓ pyobjc-framework-exceptionhandling ✓ pyobjc-framework-addressbook ✓ pyobjc-framework-syncservices ✓ pyobjc-framework-notificationcenter ✓ pyobjc-framework-avfoundation ✓ pyobjc-framework-instantmessage ✓ pyobjc-framework-screensaver ✓ pyobjc-core ✓ pyobjc-framework-searchkit ✓ pyobjc-framework-automator ✓ elasticsearch-dsl ✓ pyobjc-framework-corewlan ✓ pyobjc-framework-launchservices ✓ pyobjc-framework-accounts ✓ pyobjc-framework-pubsub ✓ pyobjc-framework-coreservices ✓ pyobjc-framework-fsevents ✓ pyobjc-framework-naturallanguage ✓ pyobjc-framework-coremediaio ✓ pyobjc-framework-coremedia ✓ pyobjc-framework-avkit ✓ pyobjc-framework-multipeerconnectivity ✓ retrying ✓ pyobjc-framework-osakit ✓ pyobjc-framework-dictionaryservices ✓ pyobjc-framework-findersync ✓ pyobjc-framework-netfs ✓ pyobjc-framework-network ✓ pyobjc-framework-coreml ✓ google-cloud-core ✓ backports-abc ✓ avro ✓ smart-open ✓ htpasswd ✓ gunicorn ✓ filelock ✓ flake8 ✓ prometheus-client ✓ isodate ✗ django ✓ google-auth-httplib2 ✓ azure-nspkg ✗ defusedxml ✗ beautifulsoup ✗ unicodecsv ✗ requests-aws4auth ✓ cerberus-python-client ✓ pypandoc ✓ google-resumable-media ✓ docker ✓ enum ✓ requests-toolbelt ✗ azure-common ✗ cached-property ✗ py4j ✗ pickleshare ✗ redlock ✗ azure-storage-blob ✓ google-cloud-storage ✓ termcolor ✓ google-api-python-client ✓ backports-ssl-match-hostname ✗ platformdirs ✓ ipython ✓ azure-storage-nspkg ✗ ipython-genutils ✗ markdown ✓ traitlets ✓

Top 240 - 360

uritemplate ✓ pytest-runner ✓ tabulate ✓ simplegeneric ✗ backports-shutil-get-terminal-size ✗ pyspark ✓ xlrd ✗ scapy ✗ greenlet ✓ gitpython ✓ argparse ✗ distro ✓ h5py ✓ prompt-toolkit ✓ msgpack ✓ smmap ✓ azure-storage-common ✗ backports-weakref ✗ xmltodict ✓ pyrsistent ✓ gitdb2 ✓ nose ✓ smmap2 ✓ ply ✓ snowballstemmer ✗ vine ✓ pycryptodomex ✗ msrest ✓ snowflake-connector-python ✓ incremental ✗ psycopg2-binary ✓ webob ✗ raven ✗ curlify ✗ kubernetes ✓ bs4 ✓ pathspec ✓ networkx ✓ sh ✓ marshmallow ✓ multiprocessing ✓ entrypoints ✓ pycryptodome ✗ statistics ✗ gevent ✓ anyjson ✗ nltk ✓ crcmod ✗ fuzzywuzzy ✗ tensorboard ✓ namedlist ✗ pytest-cov ✓ keras-preprocessing ✗ mako ✓ lazy-object-proxy ✓ text-unidecode ✗ absl-py ✓ tensorflow ✓ graphviz ✓ torch ✓ msal ✗ keras-applications ✗ docker-pycreds ✗ gast ✗ regex ✓ scrapy ✓ google-cloud-datastore ✓ openpyxl ✓ mysql-python ✓ pyzmq ✓ slacker ✗ waitress ✓ webtest ✓ adal ✗ hyperlink ✗ astor ✗ tzlocal ✓ deprecated ✗ keras ✓ influxdb ✗ msrestazure ✗ sqlparse ✓ pathlib ✗ pytesseract ✓ appdirs ✗ pywin32 ✓ google-auth-oauthlib ✓ pysocks ✗ scrapy-splash ✗ newrelic-telemetry-sdk ✗ flask-httpauth ✓ oscrypto ✗ trino ✓ joblib ✓ addict ✗ google-compute-engine ✗ mistune ✓ cssselect ✓ txaws ✓ html5-parser ✓ checkdigit ✓ isort ✓ pyarrow ✓ thrift ✓ ijson ✗ mysql-connector-python ✓ jdcal ✗ service-identity ✓ mysqlclient ✓ plotly ✓ et-xmlfile ✓ python-dotenv ✓ twisted ✓ findspark ✓ flask-marshmallow ✓ jupyter-core ✓ torchvision ✓ pysftp ✗ pyscaffold ✓ zope-event ✓

Thanks

This is derivative work from py3readiness.org, a site that previously tracked general compatibility with Python 3, which in turn was a derivative of pythonwheels.com, a site that tracks which Python distributions ship the wheel distribution.