title: How to use tox in an existing python package with requirements and setup
body: <p>I have a python/django app.</p>
  <p>I do have requirements.txt, requirements_dev.txt and setup.py like this:</p>
  <p><strong>requirements.txt</strong></p>
  <pre><code>a_package_from_our_pypi_server
  django~=2.2.3
  django-filter
  djangorestframework~=3.10.1
  django-restql==0.13.1
  requests==2.24.0
  Pillow~=8.2
  </code></pre>
  <p><strong>requirements_dev.txt</strong></p>
  <pre><code>-r requirements.txt
  
  coverage==5.2.1
  factory-boy==3.2.0
  # Syntax and style checkers
  black==20.8b1
  isort==5.8.0
  pre-commit==2.12.1
  </code></pre>
  <p><strong>setup.py</strong></p>
  <pre><code>#!/usr/bin/env python
  from setuptools import find_packages, setup
  
  import mypackage
  requirements = open('requirements.txt').readlines()
  
  setup(
      name='mypackage',
      install_requires=requirements,
  
      . . . a lot of other parameters
  )
  </code></pre>
  <ol>
  <li><p>What is the way to use tox to test against for example different python, Django and Django Rest Framework versions?</p>
  </li>
  <li><p>What package versions should I require in the <code>install_requires</code> in the <code>setup.py</code> after testing against versions?</p>
  </li>
  <li><p>How do I define <code>install_requires</code> in setup.py and requirements.txt?</p>
  </li>
  </ol>
  <p>The problem I have, is that the package is an API, so I do have a few packages that are required to be installed and not only one or two as I see in a lot of packages. That is why I do have <code>install_requires=requirements</code> in <code>setup.py</code>. And I would like to continue to use a practice like this one, and do not have to sync a lot of packages both in requirements and setup.</p>