- Dane Hillard. An Effective Python Environment: Making Yourself at Home. realpython.
- Discusses shells (sh, bash, zsh, xonsh, cmd, powershell, wsl), terminal emulators (macos terminal, iterm2, hyper, command prompt, cygwin, windows terminal), python version management (pyenv, conda), virtual environments (venv, pyenv-virtualenv, conda, pipenv), package management (pip, pipenv, poetry, conda), python interpreters (default REPL, IPython, brython), text editors (barely), and a few tips and tricks.
- Alexander VanTol. Python Code Quality: Tools & Best Practices. realpython.
- Python 3 Installation & Setup Guide. realpython, 8/2020.
- Covers installation on Windows, macOS, Linux, iOS, Android, and online interpreters.
- Jonas Kemper. Understanding Best Practice Python Tooling by Comparing Popular Project Templates. betterprogramming/medium, 2/2020.
- Covers Flake8, Pytest, coverage.py, Sphinx, pyproject.toml, Poetry, Dependabot, Pre-commit, Pylint, Black.
- Mario Kostelac. Overview of Python Dependency Management Tools. modelpredict, 6/2020.
- Solid article, covers pip, venv, pip-tools, pyenv, conda, pipenv, poetry, and Docker.
Editor/IDE
- Jon Fincher. Python IDEs and Code Editors (Guide). realpython.
- Covers Eclipse + PyDev, Sublime Text, Atom, GNU Emacs, Vi / Vim, Visual Studio, Visual Studio Code, PyCharm, Spyder, and Thonny.
- PyCharm
- Jahongir Rahmonov. PyCharm for Productive Python Development (Guide). realpython.
- IDLE
- Michael Neary. Getting Started with Python IDLE. realpython, 2019.
- Jon Fincher. Python Development in Visual Studio Code. realpython.
- An introductory article covering VSC.
- Thonny
- Krishelle Hardson-Hurley. Thonny: The Beginner-Friendly Python Editor. realpython.
- Emacs
- Jon Fincher. Emacs: The Best Python Editor? realpython.
Debugging
- Nathan Jennings. Python Debugging with Pdb. realpython.
- Python 101 – Debugging Your Code with pdb. mouse vs python, 7/2020.
- William McGugan. Better Python Tracebacks with Rich. 2/2020.
Code Formatting
Static Analysis
- Python Static Analysis Tools. 2020.
- MyPy – 8.5k Stars (6/6/20).
- Pyright – 5.2k Stars (6/6/20).
Testing
- Anthony Shaw. Getting Starting with Testing in Python. realpython, 10/2018.
- Provides a broad overview of the topic including unit, integration, conventions, and security testing.
- Faker – 9.9k Stars (6/6/20) – Generates fake data for use in testing.
- FactoryBoy – 2.2k Stars (6/6/20) – For creating test fixtures.
- fake2db – 2k Stars (6/6/20) – For creating test databases with test data.
- Hypothesis – Stars: 4.8k – Last Updated: 12/2020 – Last Checked: 12/2020 – Automated testing.
- nose2 – Stars: 654 – Last Updated: 3/2020 – Last Checked: 12/2020.
- PyTest – Stars: 6.8k – Last Updated: 12/2020 – Last Checked: 12/2020.
- Dane Hillard. Effective Python Testing with Pytest. realpython, 4/2020.
- Testing Python Applications with Pytest [Guide]. stribyny.name.
Build Automation
- PyBuilder – 1.2k Stars (6/6/20)
Continuous Integration
- buildbot – Continuous Integration testing framework.
- Kristijan Ivancic. Continuous Integration with Python: An Introduction. realpython.
Package Management
Unfortunately there isn’t one right way to do package management. For some discussion of the options check out this Reddit thread (2019)
- Pip – Stars: 6.8k – Updated: 1/2021 – Checked: 1/2021.
- Isaac Rodriguez. What is Pip? A Guide for New Pythonistas. realpython, 4/2018.
- Don’t use requirements.txt, pip, and virtualenv/venv, use pipenv instead – it simplifies things significantly.
- Isaac Rodriguez. What is Pip? A Guide for New Pythonistas. realpython, 4/2018.
- Pipenv – Stars: 21.4k – Updated: 12/2020 – Checked: 1/2021.
- Also handles virtual environments.
- Alexander VanTol. Pipenv: A Guide to the New Python Packaging Tool. realpython.
- Poetry – Stars: 13.4k – Updtaed: 1/2021 – Checked: 1/2021.
Creating Executables
- pyinstaller – 8.6k Stars (6/6/20) – Create stand-alone executables from Python programs.
- Luke Lee. Using PyInstaller to Easily Distribute Python Applications. realpython, 3/2019.
- Use PyInstaller to create distributable executables for Windows, Mac, and Linux that end users can run with ease.
- Luke Lee. Using PyInstaller to Easily Distribute Python Applications. realpython, 3/2019.
Typing
- MonkeyType – By Instagram.
Version Control
- Jim Anderson. Introduction to Git and GitHub for Python Developers. realpython.
- Jim Anderson. Advanced Git Tips for Python Developers. realpython.
Virtual Environment
- Real Python Staff. Python Virtual Environments: A Primer. realpython.
- Covers virtualenv, venv, virtualenvwrapper.
- Pipenv – Stars: 21.4k – Updated: 12/2020 – Checked: 1/2021.
- Alexander VanTol. Pipenv: A Guide to the New Python Packaging Tool. realpython.
- pyenv – Stars: 21.9k – Updated: 12/2020 – Checked: 1/2021.
- Logan Jones. Managing Multiple Python Versions with pyenv. realpython.
- Docker
- Geir Arne Hjelle. Run Python Versions in Docker: How to Try the Latest Python Release. realpython, 12/2019.
- Anca Iordache. Containerized Python Development – Part 1. docker, 7/2020.
- Focuses on creating a dockerfile.
- Anca Iordache. Containerized Python Development – Part 2. docker, 7/2020.
- Covers Docker Compose.
- Anca Iordache. Containerized Python Development – Part 3. docker, 7/2020.
- Covers applying code updates and debugging.
Managing Multiple Python Versions
- Logan Jones. Managing Multiple Python Versions with pyenv. realpython.