为什么当我更改哈希时 pipenv 不抱怨?
Why doesn't pipenv complain when I change a hash?
Pipfile.lock 中的哈希有什么用?
我做什么
- 我用 pipenv
创建了一个 Pipfile
+ Pipfile.lock
- 我将它们复制到新位置
- 我更改了哈希值(例如,将第一个字符替换为 "a")
- 我执行
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.
如果软件包已经安装,似乎没有检查哈希值。
Pipfile.lock 中的哈希有什么用?
我做什么
- 我用 pipenv 创建了一个
- 我将它们复制到新位置
- 我更改了哈希值(例如,将第一个字符替换为 "a")
- 我执行
pipenv sync
Pipfile
+ Pipfile.lock
现在我希望 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.
如果软件包已经安装,似乎没有检查哈希值。