Python Dependency management practices

I would create two virtualenvs (venv for Python 3) with a separate requirements.txt file for each, like requirements-production.txt and requirements-develop.txt, but that looks a bit strange to me.

Personally, I usually use git's branches to separate production/development code. Most of the development goes in the develop branch, there's a single requirements.txt (which can change over time, for sure). When everything's alright and/or the development cycle has ended, I just merge it with the master branch. Haven't had a need to test different versions of dependencies simultaneously.