CoursePython · Environment, Tooling, and Version Control · part 1 of 79
Part 1 · Environment, Tooling, and Version Control

Lesson 1: Toolchain

9 min read·9 Sept 2026

The problem this lesson solves

You finish a project. You run pip freeze > requirements.txt and commit it. A colleague clones the repository, installs, and it works. Two months later a new hire tries the same thing and gets a TypeError deep inside a library nobody has touched.

Here is what happened. Your requirements.txt listed pandas==2.1.0, which is precise. But pandas depends on numpy, and your file either did not mention numpy or listed whatever version you happened to have at the time. When the new hire installed, the installer resolved numpy to a newer release with a behaviour change. Your direct dependency was pinned. Your dependency's dependency, called a transitive dependency, was not.

The rest of this part opens with an account

Signing up is free and takes one email. Nothing to pay, and nothing renews.