我刚刚开始使用PIPENV,因为从未使用过虚拟环境,所以我感到非常惊奇。但是,我仍然对PIPENV文件和锁定文件感到困惑。通过视频,我了解到这两个文件对于PIPENV都是必不可少的。
我对两个文件有两个问题:
1)如果我希望将其部署在我的朋友笔记本电脑上(让他作为最终用户),我需要将这两个文件中的哪一个传递给他,它们的目的是什么?
2)如果我希望将其部署在需要开发库的其他朋友的便携式计算机上(让他作为我的项目合作伙伴),我需要将这两个文件中的哪一个传递给他,它们的用途是什么?
3)“冻结”和“锁定”有什么区别?
提前感谢!
Pipfile
是描述您的应用程序直接需要哪些依赖项的文件。
[Pipfile.lock
是从Pipfile
生成的,描述了应用程序正常运行所需安装的所有内容,即您的直接依赖项,它们的依赖项等。
回答问题1和2,在两种情况下都应同时提供Pipfile
和Pipfile.lock
。
但是,安装过程将略有不同。
最终用户需要使用pipenv install --deploy
安装依赖项,以确保Pipfile.lock
是最新的-如果锁定文件已过期,则安装将失败。
您的项目的另一位开发人员可能使用简单的pipenv install
安装依赖项。如果Pipfile.lock
已过时,它将在安装过程中重新生成。
回答您的问题3:freeze
是pip
命令,而不是pipenv
命令。
pip freeze
”以文本格式打印您的虚拟环境的“ [当前内容”,其输出通常保存在名为requirements.txt
的文件中。如果您的虚拟环境已经过时,则其内容仍将按原样输出。
pipenv lock
生成并输出项目的依赖项列表
,无论当前是否安装它们。它生成名为Pipfile.lock
的锁定文件,以供pipenv
进一步使用。