Tools

There are many useful Python development tools, and we do not pretend to know them all. This section of the site offers guidance on which tools to use to get started and is based purely on our present abilities to provide guidance rather than any claims of one tool being better than any other. The tools identified and summarized here are selected based on current usage and willingness of a team member to share their knowledge here. If you like a tool that is not included in this section, please contribute content to improve the coverage here.

Integrated Development Environments

Integrated Development Environments (IDEs) are the workhorse for efficient software development, whether doing simple scripting or developing complex machine learning systems. The recommended IDE for Python development at present is VS Code, in the sense that current contributors to this content use VS Code and have more knowledge to share about VS Code than other IDEs such as, for example, PyCharm or Spyder.

VS Code

Visual Studio Code (VS Code) is a free multi-language IDE developed by Microsoft and is popularly used by software engineers for developing solutions in numerous languages. The VS Code extensions ecosystem is large and active - there are extensions for linting, formatting, source control, containerization, cloud computing services and much (much) more.

Ready to give it a try? See our primer on installing and setting up VS Code to effectively collaborate on Python development projects.

Others

Feel free to add short descriptions of your favorite IDE and link to a primer page here.

Package and Environment Management

Perhaps more controversial than what IDE to use, what tools should you use to manage project packages and evironments?

Anaconda

The much maligned but rarely defeated…

Python Package Index

The foundation…

Venv

Containerization

Package and environment management is necessary but insufficient to ensure reproducible projects. Environments run on operating systems, which run on real or virtual machines. Containerization is a technology developed to support reproducibility and virtualization (at scale) of operating systems. The leading tools for containerization of Python (or, really, any development) projects are Docker and Kubernetes.

Docker

is…

Kubernetes

is…

Azure Container Instances

is…

Helm

is…