为什么当我更改哈希时 pipenv 不抱怨?

Why doesn't pipenv complain when I change a hash?

Pipfile.lock 中的哈希有什么用?

我做什么

  1. 我用 pipenv
  2. 创建了一个 Pipfile + Pipfile.lock
  3. 我将它们复制到新位置
  4. 我更改了哈希值(例如,将第一个字符替换为 "a")
  5. 我执行pipenv sync

现在我希望 pipenv 告诉我它无法安装 Pipfile.lock 中指定的依赖项。哈希值不匹配。但是它完成了,好像一切都很好。

我用pipenv, version 2018.11.26

Pip文件

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
click = "*"

[requires]
python_version = "3.8"

Pipfile.lock

{
    "_meta": {
        "hash": {
            "sha256": "4a7fd38a2059440221d12f94b1f164253e097393bdaa26ee99895d043625bcb8"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.8"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "click": {
            "hashes": [
                "sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13",
                "sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7"
            ],
            "index": "pypi",
            "version": "==7.0"
        }
    },
    "develop": {}
}

我也能够重新创建此行为,因此我使用 pipenv sync -v 命令进行了一些挖掘以了解一些冗长的内容,并发现了以下内容:

Since it is already installed, we are trusting this package without checking its hash. 
To ensure a completely repeatable environment, install into an empty virtualenv.

如果软件包已经安装,似乎没有检查哈希值。