Python Pipenv&;锁文件-解聚剂

Python Pipenv&;锁文件-解聚剂,python,python-3.x,pip,pipenv,Python,Python 3.x,Pip,Pipenv,我刚刚开始使用PIPENV,我发现它很神奇,因为我以前从未使用过虚拟环境。但是,我仍然对PIPENV文件和lock文件感到困惑。我通过视频了解到,这两个文件对PIPENV都是必不可少的 关于这两个文件,我有两个问题: 1) 如果我想在我朋友的笔记本电脑上部署它(让他作为最终用户),我需要传递这两个文件中的哪一个,它们的用途是什么 2) 如果我希望将它部署到我其他需要开发库的朋友的笔记本电脑(让他作为我的项目合作伙伴)上,我需要将这两个文件中的哪一个传递给他,它们的用途是什么 3) “冻结”和“锁

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

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

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

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

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


提前谢谢

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

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

回答问题1和问题2时,您应该在这两种情况下同时发送
Pipfile
Pipfile.lock

但是,安装过程将略有不同

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

您项目的另一个开发人员可能会使用plain
pipenv install
安装依赖项。如果
Pipfile.lock
已过期,将在安装过程中重新生成该文件


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

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


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

进一步使用,感谢您的详细回复。我仍然感到困惑,为什么我们需要传输锁文件,而这两种方案都将重新生成或生成新的锁文件。第一种方案不会重新生成锁文件,如果锁文件丢失或过期,它将失败。第二种情况确实会在需要时重新生成锁文件,但我建议无论如何都要传递它,因为它允许您确保您和合作伙伴的计算机上的依赖项相同。