【问题标题】:Why doesn't pipenv complain when I change a hash?为什么当我更改哈希时 pipenv 不抱怨?
【发布时间】:2020-02-19 07:39:32
【问题描述】:

Pipfile.lock 中的哈希值是做什么用的?

我做什么

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

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

我用pipenv, version 2018.11.26

点文件

[[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


    【解决方案1】:

    我也能够重新创建这种行为,所以我使用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.
    

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

    【讨论】:

    • "错误:这些包与需求文件中的哈希值不匹配。如果您更新了包版本,请更新哈希值。否则,请仔细检查包内容;可能有人篡改了它们。” - 很好谢谢! (赏金奖励:-))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    • 2012-05-15
    • 1970-01-01
    • 2015-06-09
    • 2020-08-12
    • 2016-02-27
    • 1970-01-01
    相关资源
    最近更新 更多