Why I ditched “mypip”
The Built-in pip Feature I Overlooked
When I created mypip, I was addressing a specific issue: the standard pip freeze
command lists all dependencies, including internal and intermediate ones, often causing difficulties when installing projects in different environments. I needed to see only the top-level dependencies directly used in my project.
I wrote a detailed article about why I developed my own solution (Why I Built “mypip”), explaining my reasoning behind it.
However, I now realize that I reinvented the wheel. It turns out there’s already a built-in pip command that accomplishes this task more simply and accurately:
pip list --not-required --format=freeze > requirements.txt
This command excellently creates a list of top-level dependencies explicitly used by your project and excludes unnecessary internal packages.
The lesson I’ve learned: always first explore existing tools and their capabilities. Python and its ecosystem evolve rapidly, and often, what seems to be a problem already has a simple and elegant solution.
Don’t repeat my mistake — make the most out of pip’s built-in features!