Suggested Python Development Tools


Listed here are tools that PyHC suggests using to aid Python development. The list was compiled by surveying our members about what they use and by independently examining what’s popular in industry.


The PyHC Environment

We created and dockerized a Python environment containing the latest versions of every published PyHC package. Try out the pyhc-environment image on Docker Hub. See its GitHub repo for more information.


IDEs

An IDE, or Integrated Development Environment, enables developers to consolidate the different aspects of writing programs. IDEs increase productivity by combining common activities of writing software into a single application: editing source code, building executables, and debugging. They offer so many conveniences that we recommend using one.

PyCharm

Visual Studio Code

Spyder


Linters

A linter is a basic static code analyzer that checks your source code for programmatic and stylistic errors. They are especially useful for enforcing coding style (like PEP 8, the style guide all PyHC projects must follow) in projects with multiple developers.

Pylint

Flake8

Black


Virtual Environment Managers

A Python virtual environment is a self-contained directory tree that contains a Python installation for a particular version of Python, plus a number of additional packages. We recommend using a different virtual environment for every project you work on to avoid dependency compatibility issues—ignoring the default Python installation on your machine altogether.

Anaconda / Miniconda / Conda

Venv

Pyenv


Python Notebooks

Python notebooks are documents that contain live code, equations, visualizations, and/or narrative text all together in one place. They’re convenient for sharing code examples and results, among other things.

Jupyter Notebook

JupyterLab

Deepnote


Other Tools

Other tools that stand out to us:

If you know of a tool we missed that might belong on this page, please contact Shawn Polson at Shawn.Polson@lasp.colorado.edu.