Adventures in pip land
summary
pip installs everything from wheels, VCS URLs and find-links but still no dependency resolution: it picks the first matching version instead of solving conflicts. setuptools/distribute history forces awkward upgrades; six different installation databases and editable installs leave behind files so uninstall is not reliable. build-time metadata often requires running setup_requires which means setup_requires runs code during build and pip must unpack and execute egg_info, trusting remote packages. a back-of-envelope resolver exists but full resolution is hard and heuristics do the work.
AI-written summary · about
chapters (13)
- 0:00Start
- 10:26pip install 1. Find the package to install 2. Find its dependencies 3. Repeat recursively
- 14:33Horror #5
- 15:02Pip does not resolve versions
- 16:14Sidebar Working resolver
- 18:37Horror #6
- 20:23Horror #7
- 21:09Easy Install
- 25:56Install 1 Order by dependencies 2. Build wheels 3. Install in order
- 26:24Horror #8
- 27:04Distribute?
- 27:30from setuptools import setup
- 30:09Installation . Otherwise run setup.py install
related talks
30mThe Evolutionary Saga of Python Packaging
29mPIP Internals
36mPipenv: The Future of Python Dependency Management
26mDependency Management in Python
24mPipenv: New Package Dependency Management System for Python
32mInside the Cheeseshop: How Python Packaging Works
25mInside the Cheeseshop: How Python Packaging Works
44mNobody Expects the Python Packaging Authority
