Pipenv & 锁定文件 - 部署

Pipenv & lock file - depolyment

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

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

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

2) 如果我想把它部署到我的其他需要开发库的朋友笔记本电脑上(假设他是我的项目合作伙伴),我需要将这两个文件中的哪一个传递给他,它们的用途是什么?

3) 'freeze'和'lock'有什么区别?

提前致谢!

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

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

回答您的问题 1 和 2,您应该在这两种情况下都运送 PipfilePipfile.lock

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

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

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


回答您的问题 3:freeze 是一个 pip 命令,而不是 pipenv 命令。

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

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

进一步使用