我正在研究使用pipenv和这里的文档
https://pipenv.readthedocs.io/en/latest/basics.html#importing-from-requirements-txt
上面写着(强调我的)
Note, that when importing a requirements file, they often have version numbers pinned, which you likely won’t want
这是为什么?
我知道Pipfile.lock文件将存储我安装的依赖项的特定版本和散列,但我不想看到Pipfile中安装的内容的特定版本吗?(与使用requirements.txt时的方式相同?)
这些文档对您将版本固定在需求文件上的可能原因很有意见:它可能来自
pip freeze > requirements.txt
。当然,您需要在
Pipfile
中指定一些或所有版本范围,只是许多人将其固定在requirements.txt
中,因为他们过去将其视为一种Pipfile.lock
,指定的包版本甚至不是直接依赖的。当然,如果你不遵循这种做法,你就不必担心这个警告。这很可能是Kenneth Reitz(Pipenv creator)自己在之前的博客文章中提到的那样做的结果。关于这件事的澄清,他已经在官方的repository中提出并作出了答复。
更新日期:2018年6月
该消息也曾被
pipenv
命令打印为警告,但它已被替换为稍微友好一点,但我认为这仍然隐含着在Pipfile上固定版本并不理想,这不是真的。很好。
锁文件用于跟踪实际安装的内容,是生成确定性生成的关键。lock打算与Pipfile一起提交到项目中。还有一种观点认为,理想的工作流是使用“pipenv lock来编译对开发环境的依赖关系,并将编译后的Pipfile.lock部署到所有生产环境中,以实现可复制的生成。”
要在Pipfile中指定的某些版本。例如,Django的所有版本低于某个主要版本可能是一个好主意。
同时也要知道,到目前为止,pipenv仍在积极发展中,所以其中一些想法仍在制定中。可能会有一些变化。
但是,我不确定以前的情况是什么,the latest documentation说您可以在安装包时指定其版本号,如下所示:
这还将更新
Pipfile
中的包以包含版本号,如下所示:如果以前安装过每个要指定版本号的包,则可以对每个包执行此操作。
我认为您可以手动编辑您的
Pipfile
来执行此操作,尽管我不确定这是否正确。相关问题 更多 >
编程相关推荐