우선 에러 메세지를 살펴보면 아래와 같은 내용을 볼 수 있다

ERROR: Could not find a version that satisfies the requirement dataclasses==0.7 (from -r requirements.txt (line N)) (from versions: 0.1, 0.2, 0.3, 0.4, 0.5, 0.6) ERROR: No matching distribution found for dataclasses==0.7 (from -r requirements.txt (line N))

문제를 일으키는 dataclasses 패키지에 대한 정보를 찾아보니 다음과 같은 내용을 찾을 수 있었다.

This is an implementation of PEP 557, Data Classes. It is a backport for Python 3.6. Because dataclasses will be included in Python 3.7 …

즉, 파이썬 3.6 환경에서 만들어진 requirements.txt파일을 3.7 이상 환경에서 pip install -r requirements.txt로 설치할때, 3.7 이상의 환경에서는 해당 패키지가 필요가 없기 때문에 설치가 되지 않는 문제였다.

이 문제는 requirements.txt의 environment marker를 이용해서 해결하면 된다.

기존의 requirements.txt 파일의 dataclasses 라인을 아래의

dataclasses==0.7

에서 다음과 같이 바꿔주면 해결된다.

dataclasses==0.7; python_version < '3.7'

Reference