Why would "pip freeze" print out packages that I did not install?

You need to use the -l or --local option to freeze only the local packages in the virtual environment (and not the global ones)

pip freeze -l > requirements.txt