python - Pipenv & 锁定文件 - 分解
问题描述
我刚刚开始使用 PIPENV,我发现它很棒,因为我以前从未使用过虚拟环境。但是,我仍然对 PIPENV 文件和锁定文件感到困惑。我通过视频了解到这两个文件对于 PIPENV 都是必不可少的。
关于这两个文件,我有两个问题:
1)如果我想将它部署在我朋友的笔记本电脑上(让他作为最终用户),我需要将这两个文件中的哪一个传递给他,它们的目的是什么?
2)如果我希望将它部署在需要开发库的其他朋友的笔记本电脑上(让他作为我的项目合作伙伴),我需要将这两个文件中的哪个传递给他,它们的目的是什么?
3)“冻结”和“锁定”有什么区别?
提前致谢!
解决方案
Pipfile
是描述您的应用程序直接需要哪些依赖项的文件。
Pipfile.lock
生成Pipfile
并描述了为使您的应用程序工作而需要安装的所有内容,即您的直接依赖项、它们的依赖项等。
回答您的问题 1 和 2,您应该Pipfile
在Pipfile.lock
两种情况下都发货。
但是,安装过程会略有不同。
最终用户需要安装依赖项pipenv install --deploy
以确保它Pipfile.lock
是最新的——如果锁定文件过期,安装将失败。
您项目的另一位开发人员可能会使用 plain 安装依赖项pipenv install
。如果Pipfile.lock
过期,安装时会重新生成。
回答您的问题 3:freeze
是pip
命令,而不是pipenv
命令。
pip freeze
以文本格式打印虚拟环境的当前内容,其输出通常保存在名为requirements.txt
. 如果您的虚拟环境以某种方式过时,其内容仍将按原样输出。
pipenv lock
构建并输出项目的依赖列表,无论它们当前是否已安装。它会在名称下生成锁定文件,Pipfile.lock
以便与pipenv
.
推荐阅读
- javascript - 函数中的 switch 语句返回未定义
- javascript - 在循环通过material-ui评级组件时,'onChange'中'index'的值保持为0
- python - 如何用 Dask 和 Arima 并行化一个简单的函数?
- javascript - 为什么 onnegotiationneeded 只触发一次?
- html - 如何让 CSS3 背景图像出现?
- python - 如何对从任意整数创建的 2 行周围的数据进行重新分类
- c++ - 在win32应用程序中隐藏任务栏
- python - 我的添加到购物车按钮没有在 django 中保存用户首选大小,没有使用 javascript
- javascript - 使用 php 数组作为 JavaScript 函数的参数
- javascript - 每次滑动 SwiperJS 都会更改不同的 HTML 元素