首页 > 解决方案 > 仅使用 `Pipfile.lock` 指定 Python 版本

问题描述

我的问题涉及Pipfile.lock完全指定通过 Pipenv 创建的环境的能力。以下是该问题的最小工作示例:

我有以下内容Pipfile

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

[packages]
numpy = "*"

[dev-packages]

[requires]
python_version = "3.6"

Pipfile将此和随附的最新版本复制Pipfile.lock到新目录并运行

pipenv install

结果是对环境的完美再现

pipenv run python

numpy生成一个成功安装的 Python 3.6.x shell 。

但是,如果我只复制Pipfile.lock并运行

pipenv install --ignore-pipfile

Pipenvnumpy根据需要安装,但忽略 Python 版本要求,而是使用 Pyenv 的 3.7.0 安装。

注意:Pipfile.lock包含

"requires": {
        "python_version": "3.6"

所以它似乎知道版本要求。

这是 Pipenv 的预期行为吗?Pipfile除了完全指定(包括Python版本)环境之外,它是否确实需要存在Pipfile.lock,或者是否有一个我不知道的命令可能会产生我正在寻找的行为?

标签: pythonpython-3.xpipvirtualenvpipenv

解决方案


推荐阅读