【发布时间】:2018-05-26 22:25:28
【问题描述】:
我正在一个新项目中使用 pipenv。最初的 pipenv install 是 Django,Pipfile 显示:
[packages]
django = "*"
和 Pipfile.lock 显示:
"version": "==1.11.7"
pipenv graph 和 pip list(来自 pipenv virtualenv)都显示已安装 Django 版本 1.11.7
但是,当我执行后续pipenv install new-package 时,Pipfile.lock 会更新为显示:
"version": "==2.0"
对于 Django,即使 pipenv graph 和 pip list 都显示版本 1.11.7 仍安装在本地。这显然会导致问题,因为本地 Django 版本与基于 Pipfile.lock 安装在全新环境中的版本不同。
似乎pipenv install new_package 正在更新已安装的软件包的指定版本,而不是将这些软件包更新到最新版本 - 这对我来说似乎违反直觉。据我所知,使 Pipfile.lock 与本地环境保持同步的唯一方法是将所有包版本固定在 Pipfile 中,或者使用pipenv update 跟进每个pipenv install ... - 这两者都不是似乎是一个特别直观的工作流程。
我无法在网上找到任何能够真正阐明这种行为的文档或有用的答案。这是预期的行为,还是我错过了什么?使用 pipenv 处理这种情况的“推荐”工作流程是什么?
【问题讨论】: