CircleCi caching of python dependencies not working

Hey, I am trying to implement caching to speed up the time for testing of my app.
I have gotten CircleCi to save and restore the cache successfully.

However, it does still reinstall all of the dependencies each time, is this a bug or am I doing something wrong in my code?

Please see the message from CircleCi and my code below

Restoring response from CircleCI:

Found a cache from build 13 at deps1-CircleCi-caching-integration-x442no1rWzQq7IjN88tbxpE0VT7AchlwkRloCNuuS0k=
Size: 32 B
Cached paths:
  * /home/circleci/project/venv

Downloading cache archive...
Validating cache...

Unarchiving cache...

Saving response from CircleCI:

Creating cache archive...
Uploading cache archive...
Stored Cache to deps1-CircleCi-caching-integration-x442no1rWzQq7IjN88tbxpE0VT7AchlwkRloCNuuS0k=
  * /home/circleci/project/venv

However, it does still reinstall dependencies

#!/bin/bash -eo pipefail
echo 'export PATH=~$PATH:~/.local/bin' >> $BASH_ENV && source $BASH_ENV
pip install --user -r requirements.txt

     |████████████████████████████████| 748.9MB 26kB/s s eta 0:00:0101
Collecting torchvision==0.4.2
  Downloading (10.2MB)
     |████████████████████████████████| 10.2MB 65.6MB/s eta 0:00:011
Collecting pylint==2.4.3
  Downloading (302kB)
     |████████████████████████████████| 307kB 84.3MB/s eta 0:00:01
Collecting pytest==5.2.2
  Downloading (227kB)
     |████████████████████████████████| 235kB 77.1MB/s eta 0:00:01
Collecting pytest-html==2.0.0
Collecting pillow==6.2.0
  Downloading (2.1MB)
     |████████████████████████████████| 2.1MB 37.4MB/s eta 0:00:01
Collecting pandas==1.0.1
  Downloading (10.1MB)
     |████████████████████████████████| 10.1MB 31.1MB/s eta 0:00:011
Requirement already satisfied: six>=1.11.0 in /usr/local/lib/python3.7/site-packages (from jsonschema==3.0.2->-r requirements.txt (line 2)) (1.12.0)
Requirement already satisfied: pyrsistent>=0.14.0 in /usr/local/lib/python3.7/site-packages (from jsonschema==3.0.2->-r requirements.txt (line 2)) (0.14.11)
Requirement already satisfied: setuptools in /usr/local/lib/python3.7/site-packages (from jsonschema==3.0.2->-r requirements.txt (line 2)) (41.4.0)
Requirement already satisfied: attrs>=17.4.0 in /usr/local/lib/python3.7/site-packages (from jsonschema==3.0.2->-r requirements.txt (line 2)) (19.3.0)
Collecting python-dateutil>=2.1
  Downloading (227kB)
     |████████████████████████████████| 235kB 78.4MB/s eta 0:00:01
Collecting cycler>=0.10
Collecting kiwisolver>=1.0.1
  Downloading (90kB)
     |████████████████████████████████| 92kB 25.7MB/s eta 0:00:01
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/site-packages (from matplotlib==3.1.1->-r requirements.txt (line 3)) (2.4.2)
Collecting astroid<2.4,>=2.3.0
  Downloading (205kB)
     |████████████████████████████████| 215kB 46.1MB/s eta 0:00:01
Collecting mccabe<0.7,>=0.6
Collecting isort<5,>=4.2.5
  Downloading (42kB)
     |████████████████████████████████| 51kB 16.2MB/s eta 0:00:01
Collecting atomicwrites>=1.0
Collecting wcwidth
Collecting py>=1.5.0
  Downloading (83kB)
     |████████████████████████████████| 92kB 42.4MB/s eta 0:00:01
Collecting pluggy<1.0,>=0.12
Requirement already satisfied: more-itertools>=4.0.0 in /usr/local/lib/python3.7/site-packages (from pytest==5.2.2->-r requirements.txt (line 9)) (7.2.0)
Collecting packaging
Requirement already satisfied: importlib-metadata>=0.12; python_version < "3.8" in /usr/local/lib/python3.7/site-packages (from pytest==5.2.2->-r requirements.txt (line 9)) (0.23)
Collecting pytest-metadata
Collecting pytz>=2017.2
  Downloading (509kB)
     |████████████████████████████████| 512kB 60.2MB/s eta 0:00:01
Collecting lazy-object-proxy==1.4.*
  Downloading (56kB)
     |████████████████████████████████| 61kB 17.2MB/s eta 0:00:01
Collecting wrapt==1.11.*
Collecting typed-ast<1.5,>=1.4.0; implementation_name == "cpython" and python_version < "3.8"
  Downloading (737kB)
     |████████████████████████████████| 747kB 73.1MB/s eta 0:00:01
Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/site-packages (from importlib-metadata>=0.12; python_version < "3.8"->pytest==5.2.2->-r requirements.txt (line 9)) (0.6.0)
Building wheels for collected packages: wrapt
  Building wheel for wrapt ( ... - \ done
  Created wheel for wrapt: filename=wrapt-1.11.2-cp37-cp37m-linux_x86_64.whl size=76137 sha256=199cb7b7348e923f011112773c7e2893ee298b0400ff7520b2e2d4a590fb161d
  Stored in directory: /home/circleci/.cache/pip/wheels/d7/de/2e/efa132238792efb6459a96e85916ef8597fcb3d2ae51590dfd
Successfully built wrapt
ERROR: torchvision 0.4.2 has requirement torch==1.3.1, but you'll have torch 1.2.0 which is incompatible.
Installing collected packages: json5, jsonschema, python-dateutil, numpy, cycler, kiwisolver, matplotlib, opencv-contrib-python, torch, pillow, torchvision, lazy-object-proxy, wrapt, typed-ast, astroid, mccabe, isort, pylint, atomicwrites, wcwidth, py, pluggy, packaging, pytest, pytest-metadata, pytest-html, pytz, pandas
Successfully installed astroid-2.3.3 atomicwrites-1.3.0 cycler-0.10.0 isort-4.3.21 json5-0.8.5 jsonschema-3.0.2 kiwisolver-1.1.0 lazy-object-proxy-1.4.3 matplotlib-3.1.1 mccabe-0.6.1 numpy-1.16.5 opencv-contrib-python- packaging-20.3 pandas-1.0.1 pillow-6.2.0 pluggy-0.13.1 py-1.8.1 pylint-2.4.3 pytest-5.2.2 pytest-html-2.0.0 pytest-metadata-1.8.0 python-dateutil-2.8.1 pytz-2019.3 torch-1.2.0 torchvision-0.4.2 typed-ast-1.4.1 wcwidth-0.1.8 wrapt-1.11.2
WARNING: You are using pip version 19.3; however, version 20.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
CircleCI received exit code 0

And my code:

version: 2.1
      - image: circleci/python:3.7.4
      - checkout
      - restore_cache: # **restores saved dependency cache if the Branch key template or requirements.txt files have not changed since the previous run**
          key: deps1-{{ .Branch }}-{{ checksum "requirements.txt" }}
      - run: # install and activate virtual environment with pip
          name: Install Python Dependencies
          command: |
            echo 'export PATH=~$PATH:~/.local/bin' >> $BASH_ENV && source $BASH_ENV
            pip install --user -r requirements.txt
      - save_cache: # ** special step to save dependency cache **
          key: deps1-{{ .Branch }}-{{ checksum "requirements.txt" }}
            - "venv"
      - run:
          name: Run Unit Tests
          command: |
            pytest --junitxml=test-reports/junit.xml --html=test-reports/pytest_report.html --self-contained-html
      - store_test_results: # saves test resoults
          path: test-reports
      - store_artifacts:
          path: test-reports
      - run_tests