我在我正在做的一个新项目中使用 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 install ...
使用 a跟进每个版本pipenv update
- 这两种方法似乎都不是特别直观工作流程。
我无法在网上找到任何真正阐明这种行为的文档或有用的答案。这是预期的行为,还是我错过了什么?使用 pipenv 处理这种情况的“推荐”工作流程是什么?