【问题标题】:Pipfile.lock version not matching installed package versionPipfile.lock 版本与安装的包版本不匹配
【发布时间】:2018-05-26 22:25:28
【问题描述】:

我正在一个新项目中使用 pipenv。最初的 pipenv install 是 Django,Pipfile 显示:

[packages]

django = "*"

Pipfile.lock 显示:

"version": "==1.11.7"

pipenv graphpip list(来自 pipenv virtualenv)都显示已安装 Django 版本 1.11.7

但是,当我执行后续pipenv install new-package 时,Pipfile.lock 会更新为显示:

"version": "==2.0"

对于 Django,即使 pipenv graphpip list 都显示版本 1.11.7 仍安装在本地。这显然会导致问题,因为本地 Django 版本与基于 Pipfile.lock 安装在全新环境中的版本不同。

似乎pipenv install new_package 正在更新已安装的软件包的指定版本,而不是将这些软件包更新到最新版本 - 这对我来说似乎违反直觉。据我所知,使 Pipfile.lock 与本地环境保持同步的唯一方法是将所有包版本固定在 Pipfile 中,或者使用pipenv update 跟进每个pipenv install ... - 这两者都不是似乎是一个特别直观的工作流程。

我无法在网上找到任何能够真正阐明这种行为的文档或有用的答案。这是预期的行为,还是我错过了什么?使用 pipenv 处理这种情况的“推荐”工作流程是什么?

【问题讨论】:

    标签: python pipenv


    【解决方案1】:

    这似乎与这些pipenvissues 中描述的问题相似/相同。我对older, issue 中的回复的解读是,这种行为符合预期,并且:

    • 为了使 pipenv 生成的环境与 Pipfile.lock 内容保持同步,需要调用 pipenv update
    • 为了防止在pipenv install new-package 期间更新“不相关”包,必须在 Pipfile 中固定版本

    从目前对此问题的回应看来,没有立即计划改变这种行为。

    【讨论】:

      猜你喜欢
      • 2021-07-11
      • 1970-01-01
      • 2017-03-04
      • 2017-06-02
      • 2019-01-03
      • 2018-08-14
      • 2021-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多