8

I have the following requirements file:

...
sqlalchemy==1.2.3 --hash=sha256:9e9ec143e2e246f385cfb2de8daa89d2fa466279addcb7be9e102988fdf33d24
werkzeug==0.14.1 --hash=sha256:d5da73735293558eb1651ee2fddc4d0dedcfa06538b8813a2e20011583c9e49b  
git+ssh://gitlab.domain.com/private_pkg.git#egg=private_pkg

Installing the project from shell works perfect:

pip install git+ssh://gitlab.domain.com/private_pkg.git#egg=private_pkg

but trying to install it from the requirements file raises this error:

Can't verify hashes for these requirements because we don't have a way to hash version control repositories:
    private_pkg from git+ssh://gitlab.domain.com/private_pkg.git#egg=private_pkg (from -r requirements/prod.lock (line 30))

NB: the hashes in the requirement files a generated from pipenv lock -r

Dhia
  • 10,119
  • 11
  • 58
  • 69

1 Answers1

5

The --hash option in pip is all-or-nothing. You either specify none, or need to specify all of them. Packages not hosted on PyPI cannot have a hash, however, which causes the failure. Installing your project with any package with the --hash option set, and you’d see what the problem is.

Newer versions of Pipenv removed hashes from exported requirements.txt altogether to avoid the problem.

uranusjr
  • 1,380
  • 12
  • 36