Python 模块如何制作自己的包 .whl

前言

本文介绍如何通过pyproject.toml打包一个简单的 Python 项目,以供他人使用 pip install xxx 指令安装。

Python从PEP 518开始引入的使用pyproject.toml管理项目元数据的方案。

该规范目前已经在很多开源项目中得以支持:

一、准备构建包的文件

我的项目文件目录结构如下:
感兴趣可以到我的git获取代码

.
├── cards_proj
│   ├── LICENSE
│   ├── README.md
│   ├── pyproject.toml
│   └── src
│       └── cards
│           ├── __init__.py
│           ├── api.py
│           ├── cli.py
│           └── db.py

项目说明:

  • cards_proj: 可以是任意的目录名,这里是我的项目根路径及项目名称
  • pyproject.toml : 是打包配置文件
  • src : 里面存放的是程序代码
  • cards : 是你期望发布的模块包名(官方建议是在包名后面加上自己的用户名,防止和现有库名重复)
  • LICENSE : 是许可信息,MANIFEST.in 非必需,如果需要打包代码文件夹以外的文件要在这里面配置
  • README.md : 就是 readme 文件,非必需。

pyproject.toml配置

pyproject.toml 是一个配置文件,用于指定Python项目的构建系统和依赖关系。以下是一个简单的 pyproject.toml
文件示例,它指定了项目名称、版本、依赖关系和开发依赖:

[build-system]
requires = ["flit_core >=3.2,<4"]
build-backend = "flit_core.buildapi"

[project]
name = "cards"
authors = [{name = "Brian Okken", email = "brian+pypi@pythontest.com"}]
classifiers = [
    "License :: OSI Approved :: MIT License",
    "Programming Language :: Python",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.7",
    "Programming Language :: Python :: 3.8",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
]
requires-python=">=3.7"
dynamic = ["version", "description"]
dependencies = [
    "tinydb==4.5.1",
    "typer==0.3.2",
    "rich==10.7.0"
]

[project.optional-dependencies]
test = [
    "pytest",
    "faker",
    "tox",
    "coverage",
    "pytest-cov",
]

[project.urls]
Home = "https://github.com/okken/cards"

[project.scripts]
cards = "cards:app"
  • [build-system] 指定了构建系统的要求和后端,支持 Hatchling、setuptools、Flit、PDM。这是pypi 官网给出了4个打包 whl 格式的工具:Hatchling、setuptools、Flit、PDM。此处使用的Flit。
    • [requires]字段指定了构建系统依赖的包和版本范围。在这里,它要求flit_core包的版本在3.2(包括)和4(不包括)之间。
    • [build-backend]这通常意味着你的项目使用flit_core作为构建工具。
  • [project] 下的 name 和 version 定义了项目的名称和版本。
    • [classifiers]是一个用于描述项目属性的列表,这些属性有助于用户理解项目的用途、兼容性、开发状态等。classifiers是可选的,但为项目添加适当的分类器有助于提高其在Python Package Index (PyPI) 上的可发现性。
    • [name]项目名称
    • [version]项目版本
  • [project.dependencies] 列出了项目的依赖关系。
  • [project.optional-dependencies] 列出了可选的依赖集合,例如测试依赖。
  • [project.scripts] 和 [project.gui-scripts] 定义了可执行脚本。

二、构建包

安装 build 库

pip install --upgrade build

打包构建

终端里切换到 pyproject.toml 文件所在目录运行

python -m build

在这里插入图片描述

等待构建完成,提示 Successfully built 的提示,当前目录即会多出一个 dist 文件夹,里面有两个文件,即是打包好的文件。

在这里插入图片描述

### 回答1: dlib.whl 是一个 Python ,它含了用于机器学习的不同工具和算法,例如人脸检测和识别、图像处理等。Python3.10 是最新版本的 Python,因此 dlib.whl python3.10 可以被视为在最新版本的 Python 中运行 dlib 的一种方式。在安装 dlib.whl python3.10 之前,必须保证操作系统和 Python 环境都满足要求,例如 Windows 运行在 64 位、已安装相应版本的 Python 和必要的库等。此外,需要注意的是,在使用 dlib 进行机器学习和数据处理之前,还需要了解相关的算法和工具,并熟悉 Python 编程语言,这样才能充分发挥 dlib 的优势和效果。总之,dlib.whl python3.10 是一种方便快捷的机器学习工具,并且适用于最新版本的 Python。 ### 回答2: dlib.whl 是一个 Python 的扩展库,其主要用途是进行计算机视觉相关的任务,如人脸识别、目标追踪、姿态估计等。在使用 dlib.whl 前,需要首先安装 Python 和 dlib,而 dlib.whl 则是其 Python 3.10 版本的安装Python 3.10 是最新版本的 Python,其中修复了一些旧版本的 Bug,并添加了一些新的特性。使用 Python 3.10 版本,可以更好地支持 dlib.whl 提供的计算机视觉相关的任务,并提高其运行效率。因此,将 dlib.whl 安装在 Python 3.10 上,可以更好地满足计算机视觉相关任务的需求。 总之,dlib.whl Python3.10 是一种用于计算机视觉相关任务的扩展库,其特点在于使用 Python 3.10 版本,可以更好地支持计算机视觉相关任务,并提高运行效率。 ### 回答3: dlib.whl是一个适用于Python 3.10的dlib模块的安装。dlib是一个强大的C++库,提供了用于解决计算机视觉和机器学习问题的各种工具和算法,括人脸识别、物体检测、图像分割等等。 Python是一种高级编程语言,而dlib是用C++编写的。使用Python调用C++库有时可能会变得比较麻烦,需要手动编写一些代码来实现,但这样的方式不仅比较复杂,而且会占用很多时间。 要在Python中使用dlib库,我们可以安装dlib.whl,这会将dlib库与Python3.10结合在一起。安装dlib.whl后,我们就可以使用Python来调用dlib库中的各种功能。 在安装dlib.whl之前,我们需要确保我们的Python环境和依赖项都已正确安装。我们可以在Python 3.10环境下打开命令提示符,并执行pip install dlib.whl命令来安装它。安装完成后,我们就可以在Python中调用dlib库,为我们的项目带来更多功能和灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个双鱼座的测开

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值