16 March 2021

Accessing Python package index JSON APIs with requests

PyPI, the Python package index, provides a JSON API for information about its packages. This is essentially a machine-readable source of the same kind of data you can access while browsing the website. For example, as a human, I can head to the numpy project page in my browser, click around and see which versions […]

9 March 2021

The IPython shell and Jupyter notebooks

The Jupyter project started out as IPython and the IPython Notebook. It was originally a Python-specific interactive shell and notebook environment which later branched out to become language-agnostic, supporting Julia, Python and R – and potentially anything else. IPython is a Python shell – similar to what you get when you type python or python3 […]

2 February 2021


For some time, Python has had support for managing virtual environments. Python 3.3 even added the built-in module venv for creating environments without third-party libraries. There are a number of different tools Python programmers use to manage their environments and the one I use is called virtualenvwrapper. Virtual environments are a way of separating your […]

21 May 2019


The deadsnakes PPA lets you install multiple Python versions on your Ubuntu system, so instead of only having just the Python 2.x and Python 3.x that comes with your distribution (18.04 comes with Python 3.6, and 2.7 is available), you can install older or newer versions, from 2.3 (!) to 3.8! The way PPAs (Personal […]

Tags: python, ubuntu
23 April 2019


I’m not sure whether logzero took its name to fit in with the series of “zero boilerplate” libraries like pygame-zero, GPIO Zero and guizero, but it’s certainly in that category. It’s a Python library that makes logging straightforward. It makes logging as easy as a print statement, which is a big win for education, as […]

Tags: logging, python