I have a python project where I manage project dependencies using requirements.txt. All packages have locked versions and I am periodically doing manual update to the latest versions. Recently I did something new - instead of the usual flow where I am just removing "==<version>" from all/some packages to see which versions will be installed I delete all content from requirements.txt and tried to run app over and over again to see which "Module not found ..." errors I will get and insert packages which solving this error to get to next error. This flow allowed me to identify that the `msrestazure` package which I had in my requirements.txt is actually deprecated and that I need to use `msrest` instead . Basically this problem can happen with ANY dependency in the project and the way to find this out is pretty expensive. While searching for a faster solution I found `pipreqs` which helps a bit but unfortunately after generating requirements.txt using pipreqs I still needed to do around 10 iterations to cover some runtime dependencies which pipreqs was not able to identify. Q : Is there any tool which can automatically solve such a problem ? P.S. I would expect suggestions to switch to Poetry or maybe some other package management . I am totally fine with this if you know that such scenario which I described here would allow me more easily identify that `msrestazure` is deprecated