I plan to mantain two different requirements files:
Using freeze from the activated venv: pip freeze > requirements_freezed.txt
Using pipreqs, pointing to the flask_be folder: pipreqs {gitDir}/flask_be
The reasons:
- pip freeze saves the packages that are installed with pip install in your environment, while pipreqs saves the packages that are imported in the workspace
- pip freeze saves all packages in the environment (global or venv) including those that you don’t use in your current project and doesn't save packages which are not installed even if the project does need them
- pip freeze saves the EXACT (==) version of the packages installed; this is sometimes annoying, but makes for better reproducibility. pipreqs will deduce the dependencies from the imported packages, which typically implies they will >= a given version.
Both files should be able to get the app running.
I recommend registering the version of Python, pip and pipreqs in the requirements files too.