# Python Tools (2020 Edition) ## Assumptions 1. You are using a POSIX-conforming operating system (some version of UNIX, GNU/Linux, macOS, or Windows Subsystem for Linux on Windows 10). 1. You are using the Bash shell. If you are not using the Bash shell, you know how to translate Bash shell commands to those of your shell of choice. 1. You understand the basics of Python virtual environments. ## The Tools * [`pyenv`](https://github.com/pyenv/pyenv): a tool for managing installed Python versions * [`pipx`](https://pipxproject.github.io/pipx/): a tool for managing Python-based command line applications * [`virtualenvwrapper`](https://virtualenvwrapper.readthedocs.io/en/latest/index.html): a tool for managing Python virtual environments * [`pip-tools`](https://github.com/jazzband/pip-tools): a tool for managing `requirements.txt` files ## Suggested Reading * Jacob Kaplan-Moss. [My Python Development Environment, 2020 Edition](https://jacobian.org/2019/nov/11/python-environment-2020/) * Brett Cannon. [Why you should use `python -m pip`](https://snarky.ca/why-you-should-use-python-m-pip/) * Nick Timkovich. [RIP Pipenv: Tried Too Hard. Do what you need with pip-tools.](https://medium.com/telnyx-engineering/rip-pipenv-tried-too-hard-do-what-you-need-with-pip-tools-d500edc161d4)