首页 > 解决方案 > Pipenv & 锁定文件 - 分解

问题描述

我刚刚开始使用 PIPENV,我发现它很棒,因为我以前从未使用过虚拟环境。但是,我仍然对 PIPENV 文件和锁定文件感到困惑。我通过视频了解到这两个文件对于 PIPENV 都是必不可少的。

关于这两个文件,我有两个问题:

1)如果我想将它部署在我朋友的笔记本电脑上(让他作为最终用户),我需要将这两个文件中的哪一个传递给他,它们的目的是什么?

2)如果我希望将它部署在需要开发库的其他朋友的笔记本电脑上(让他作为我的项目合作伙伴),我需要将这两个文件中的哪个传递给他,它们的目的是什么?

3)“冻结”和“锁定”有什么区别?

提前致谢!

标签: pythonpython-3.xpippipenv

解决方案


Pipfile是描述您的应用程序直接需要哪些依赖项的文件。

Pipfile.lock生成Pipfile并描述了为使您的应用程序工作而需要安装的所有内容,即您的直接依赖项、它们的依赖项等。

回答您的问题 1 和 2,您应该PipfilePipfile.lock两种情况下都发货。

但是,安装过程会略有不同。

最终用户需要安装依赖项pipenv install --deploy以确保它Pipfile.lock是最新的——如果锁定文件过期,安装将失败。

您项目的另一位开发人员可能会使用 plain 安装依赖项pipenv install。如果Pipfile.lock过期,安装时会重新生成。


回答您的问题 3:freezepip命令,而不是pipenv命令。

pip freeze以文本格式打印虚拟环境的当前内容,其输出通常保存在名为requirements.txt. 如果您的虚拟环境以某种方式过时,其内容仍将按原样输出。

pipenv lock构建并输出项目的依赖列表,无论它们当前是否已安装。它会在名称下生成锁定文件,Pipfile.lock以便与pipenv.


推荐阅读