[Reformatted as original post got mangled]

Looking for advice on the best way to remove unused modules from a Python 
virtual environment. My setup is Python 3.6.6 running on macOS although I 
believe my use case is OS independent.

Background: Long running project that, over the course of time, pip installed 
modules that are no longer used by the code. I'm looking for a way to identity 
unused modules and remove them. 

Here's my back-of-napkin strategy to do this. Wondering if there are holes in 
this approach or if there's an off-the-shelf solution for
my use case?

1. pip freeze > modules.txt

2. build a list of all import statements, extract out module names

3. remove these module names from modules.txt and add to used-modules.txt

4. modules that remain in modules.txt are either module dependencies of 
directly imported modules or no longer used

5. remove my virtual env and recreate it again to start with a fresh env

6. reinstall each directly imported module (from list in used-modules.txt); 
this will pull in dependencies again

7. pip freeze > requirements.txt <--- this should be the exact modules used by 
our code

Thank you,
Malcolm
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to