我在一个正在研究的新项目中使用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 ...
跟踪每个pipenv update
- 这两者似乎都不是特别直观的工作流程。
我还没有能够在网上找到任何文档或有用的答案,这确实澄清了这种行为。这是预期的行为,还是我错过了什么?什么是推荐的'使用pipenv处理这种情况的工作流程?
答案 0 :(得分:1)
这似乎与这些pipenv issues中描述的问题类似/相同。我在older, issue中阅读的回答是,这种行为符合预期,并且:
pipenv update
pipenv install new-package
期间打包
从目前针对此问题的回复中可以看出,目前还没有计划改变这种行为。