Basic Resources
- Official Python Website
- Official Python Documentation
- Awesome Python – Stars: 92.8k – Updated: 1/2021 – Checked: 1/2021.
- Python is Cool – Stars: 2.7k – Updated: 12/2019 – Checked: 1/2021.
- Python Enhancement Proposals (PEPs):
- PEP 8 — Style Guide for Python Code
- Alternatively, Kenneth Reitz made an aesthetically pleasing version.
- PEP 20 — The Zen of Python
- PEP 249 — Python Database API Specification v2.0
- Almost all db access modules follow this specification.
- PEP 257 — Docstring Conventions
- PEP 8 — Style Guide for Python Code
- The Hitchhiker’s Guide to Python (Kenneth Reitz, et al.)
- Python Project Tooling Explained – Covers some of the more common tooling for Python including setuptools, virtualenv, pip, distutils, Pypi, Pypiserver, Poetry, Pipenv, Sphinx, autodoc, py.test, Hypothesis, tox, pyenv, PyScaffold, flake8, and Black.
JetBrain’s Python Developers Survey 2018 Results
You can read the full results on JetBrain’s site. I simply want to highlight a few of the “most used” technologies…
- Isolate Python Environments: virtualenv/pipenv (64%), Docker (31%), Conda (22%).
- Web Frameworks: Flask (47%), Django (45%).
- Data Science: NumPy (62%), Pandas (51%), Matplotlib (46%), SciPy (38%), SciKit-Learn (31%), TensorFlow (25%).
- Other Frameworks/Libraries: Requests (53%), Pillow (29%), Scrapy (19%), Asyncio (18%), Tkinter (18%), PyQT (16%), Six (14%), aiohttp (11%), Pygame (11%).
- Testing: pytest (46%), unittest (32%), mock (15%).
- Databases: PostgresSQL (44%), MySQL (41%), SQLite (41%).
- ORMs: SQLAlchemy (34%), Django ORM (33%).
- CI: Jenkins/Hudson (25%), Gitlab (18%), Travis (18%).
- Configuration Management: Ansible (20%).
- Editors/IDE’s: PyCharm (35%), VSCode (16%), Vim (10%).
Specific Topics
- Lucas Lofaro’s Working With JSON Data in Python on Real Python. 4/2018.*
- About what it says in the title, covers the fundamentals.
Web Frameworks
- This section has been onto its own page: Web Development with Python.
Web Scraping / Crawling
- This section has its own page: Python Web Scraping.
Python Standard Library
- See our page on the Python Standard Library.
Stuff I Use
- Pipenv: Python Dev Workflow for Humans
- Project describes itself as “a tool that aims to bring the best of all packaging worlds (bundler, composer, npm, cargo, yarn, etc.) to the Python world.”
- pyenv: Simple Python Version Management
- Similar to Node’s nvm and Ruby’s rbenv; allows for installing and managing multiple versions of Python side by side.
- Requests: HTTP for Humans (by Kenneth Reitz).
Stuff I May Use But Haven’t Yet
Note that I try to avoid repeating items which are mentioned elsewhere. So for example, Django and Flask are not on this list because they can be found under Web Frameworks.
API
- Falcon* – Stars: 8.1k – Last Updated: 12/2020 – Last Checked: 12/2020 – REST API framework.
- Eve* – Stars: 6.2k – Last Updated: 12/2020 – Last Checked: 12/2020 – REST API framework.
- gspread – Stars: 5.1k – Last Updated: 10/2020 – Last Checked: 12/2020 – For connecting with Google Sheets API.
Other
- Arrow – Dates and times.
- attrs – “Classes without Boilerplate”
- Bokeh – Interactive Web plotting.
- elasticsearch-dsl-py – High-level official client for Elasticsearch.
- elasticsearch-py – Low-level official client for Elasticsearch.
- fuzzywuzzy – Fuzzy string matching.
- Gooey – Create GUI app automatically for CLI apps.
- graphene – GraphQL framework.
- httpie – HTTP CLI client.
- loguru – Simplified logging.
- pickleDB – Key-value store.
- Prophet – Time series data from Facebook.
- Python Fire – Auto generates CLIs for Python objects.
- PyYAML
- q – Run SQL against CSV/TSV files.
- Sanic – Web Framework.
- Serverless
- schedule – Job scheduling.
- SQLAlchemy – SQL Toolkit and ORM.
- SQL for Humans by Kenneth Reitz.
- xmltodict – Allows working with XML more like it is JSON.
Software Written in Python
- This has been broken out into is own page: Software Written in Python.