Python Pipenv&;锁文件-解聚剂
我刚刚开始使用PIPENV,我发现它很神奇,因为我以前从未使用过虚拟环境。但是,我仍然对PIPENV文件和lock文件感到困惑。我通过视频了解到,这两个文件对PIPENV都是必不可少的 关于这两个文件,我有两个问题: 1) 如果我想在我朋友的笔记本电脑上部署它(让他作为最终用户),我需要传递这两个文件中的哪一个,它们的用途是什么 2) 如果我希望将它部署到我其他需要开发库的朋友的笔记本电脑(让他作为我的项目合作伙伴)上,我需要将这两个文件中的哪一个传递给他,它们的用途是什么 3) “冻结”和“锁定”有什么区别Python Pipenv&;锁文件-解聚剂,python,python-3.x,pip,pipenv,Python,Python 3.x,Pip,Pipenv,我刚刚开始使用PIPENV,我发现它很神奇,因为我以前从未使用过虚拟环境。但是,我仍然对PIPENV文件和lock文件感到困惑。我通过视频了解到,这两个文件对PIPENV都是必不可少的 关于这两个文件,我有两个问题: 1) 如果我想在我朋友的笔记本电脑上部署它(让他作为最终用户),我需要传递这两个文件中的哪一个,它们的用途是什么 2) 如果我希望将它部署到我其他需要开发库的朋友的笔记本电脑(让他作为我的项目合作伙伴)上,我需要将这两个文件中的哪一个传递给他,它们的用途是什么 3) “冻结”和“锁
提前谢谢
Pipfile
是描述应用程序直接需要哪些依赖项的文件
Pipfile.lock
是从Pipfile
生成的,它描述了应用程序运行所需安装的所有内容,即您的直接依赖项、它们的依赖项等
回答问题1和问题2时,您应该在这两种情况下同时发送Pipfile
和Pipfile.lock
但是,安装过程将略有不同
最终用户需要使用pipenv install--deploy
安装依赖项,以确保Pipfile.lock
是新的,如果lockfile过期,安装将失败
您项目的另一个开发人员可能会使用plainpipenv install
安装依赖项。如果Pipfile.lock
已过期,将在安装过程中重新生成该文件
回答问题3:
freeze
是一个pip
命令,而不是pipenv
命令
pip freeze
以文本格式打印虚拟环境的当前内容,其输出通常保存在名为requirements.txt
的文件中。如果您的虚拟环境已过时,其内容仍将按原样输出
pipenv lock
生成并输出项目的依赖项列表,无论它们当前是否已安装。它以名称Pipfile.lock
生成锁文件,以便与pipenv
进一步使用,感谢您的详细回复。我仍然感到困惑,为什么我们需要传输锁文件,而这两种方案都将重新生成或生成新的锁文件。第一种方案不会重新生成锁文件,如果锁文件丢失或过期,它将失败。第二种情况确实会在需要时重新生成锁文件,但我建议无论如何都要传递它,因为它允许您确保您和合作伙伴的计算机上的依赖项相同。