Python Pipfile 和 Pipfile.lock 的使用方法
在本文中,我们将介绍 Pipfile 和 Pipfile.lock 的用法。Pipfile 是一种用于管理 Python 项目的依赖关系的文件格式,而 Pipfile.lock 则是 Pipfile 的锁定版本,记录了所有依赖包的确切版本。
阅读更多:Python 教程
Pipfile 文件格式
Pipfile 是由 Toml 格式编写的文件,它包含了项目的依赖关系和一些其他配置信息。一个典型的 Pipfile 文件如下所示:
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
requests = "*"
numpy = "==1.19.0"
flask = {version = "==1.1.2", extras = ["security"]}
[dev-packages]
pytest = "*"
在这个示例中,[source]
段用于指定 PyPI 的源。[packages]
段列出了项目的运行时依赖包,每个包都可以指定版本号或版本范围。[dev-packages]
段则列出了项目的开发时依赖包。
Pipfile.lock 文件格式
Pipfile.lock 是由 Pipenv 自动创建的,它记录了项目的完整依赖关系及其确切的版本信息。一个典型的 Pipfile.lock 文件如下所示:
{
"_meta": {
"hash": {
"sha256": "12fa4b835c84cb9a3345a82e89c01a94acd022c827b8c5a5524c743b3455dc78"
},
"pipfile-spec": 6,
"requires": {
"python_version": "3.8"
},
"sources": [
{
"name": "pypi",
"url": "https://pypi.org/simple",
"verify_ssl": true
}
]
},
"default": {
"requests": {
"hashes": [
"sha256:8419ef71ed614aabcdf6730a6e3f1434e2fb5819064a95e10e94516068ecd803",
"sha256:b5bffbf6ecdbf4e6b7961ae43c5f978678ca6150e7814713fd37835a38e9990a"
],
"version": "==2.25.1"
},
"numpy": {
"hashes": [
"sha256:824ee17b82c8d0dc6cdaaf5d1b40e6382ca2cffff3be07556c1948d0d9a57317",
"sha256:0d893ec97265a01161f768068cca07668e9b98ff43372893f751d193456f77a4"
],
"version": "==1.19.0"
},
"flask": {
"hashes": [
"sha256:e11dfd00ceb16f2e6d1c9bc6b1bae09571f1f50aeb12858cb1a0d2e4d5763f39",
"sha256:a217486ba1ce9f83450913e8c9bcb11220187fdc13887ff05b57b87cb60a196f"
],
"extras": [
"security"
],
"version": "==1.1.2"
}
},
"develop": {
"pytest": {
"hashes": [
"sha256:763d7caec2a8a67f04055d5e123c8273032dfd87727191ab2b3834a2eba37701",
"sha256:997d87f157a8c53dac7aec094addf7492881db0c3fc380897e52b60fc88120c5"
],
"version": "==3.10.0"
}
}
}
在这个示例中,_meta
段存储了文件的元数据,包括哈希值、Pipfile 版本信息、Python 版本信息和源信息。default
段记录了项目的运行时依赖关系及其确切的版本信息,develop
段则记录了项目的开发时依赖关系及其版本信息。
Pipenv 常用命令
使用 Pipenv 管理项目的依赖关系非常简单方便。下面列举了一些常用的 Pipenv 命令:
pipenv install
:从 Pipfile 中安装项目的依赖关系。pipenv install <package>
:安装指定的包并将其添加到 Pipfile 中。pipenv uninstall <package>
:卸载指定的包并将其从 Pipfile 中移除。pipenv lock
:生成或更新 Pipfile.lock 文件。pipenv sync
:安装 Pipfile.lock 文件中记录的所有依赖包。pipenv graph
:显示项目的依赖关系图。
下面是一些使用 Pipenv 命令的示例:
$ pipenv install # 从 Pipfile 安装所有依赖关系
$ pipenv install requests # 安装 requests 包并将其添加到 Pipfile
$ pipenv uninstall numpy # 卸载 numpy 包并将其从 Pipfile 移除
$ pipenv lock # 生成或更新 Pipfile.lock 文件
$ pipenv sync # 安装 Pipfile.lock 中记录的所有依赖包
$ pipenv graph # 显示项目的依赖关系图
总结
本文介绍了 Pipfile 和 Pipfile.lock 的使用方法。Pipfile 是一种用于管理 Python 项目的依赖关系的文件格式,而 Pipfile.lock 则是 Pipfile 的锁定版本,记录了所有依赖包的确切版本。通过使用 Pipenv,可以方便地安装、卸载、更新和同步项目的依赖关系。希望本文能帮助你更好地理解和使用 Pipfile 和 Pipfile.lock。