My simple low-tech approach to the problem:
requirements-base.txt:
flask
celery
package-with-broken-release==2.4.3
requirements.txt generated via pip freeze: amqp==5.1.1
billiard==3.6.4.0
celery==5.2.7
click==8.1.3
click-didyoumean==0.3.0
click-plugins==1.1.1
click-repl==0.2.0
Flask==2.2.2
package-with-broken-release==2.4.3
...