跳转到主要内容

发布到PyPI教程

项目描述

$\texttt{PyPI-Bonjour}$ 🥖

License PyPI version

发布到PyPI教程。

教程

pypi-bonjour包在多个版本中逐步增加了更多功能。

v0.0.1:hello-world示例

这个版本将裸骨骨架代码发布到pypi,包括

  • 包含单个纯Python函数hello_world的源代码(与pybinded函数相反)
  • 用于启用pip install包的pyproject.toml文件
  • GitHub工作流,在发布发布时将包发布到pypi

请观看Qiu Sheng Wu教授的此视频,了解PyPI打包介绍。

v0.0.2:添加依赖项

这个版本添加了NumPy作为依赖项之一。

v0.0.3:添加pybind11绑定的C++函数

这个版本添加了一个从C++到Python的pybind11-绑定的函数,而不使用CMake。有关使用pybind11setuptools的介绍,请参阅此处

请观看anthonywritescode的此视频,了解manylinux。构建这些manylinux轮子需要在docker镜像中安装并构建轮子。此过程由cibuildwheel自动化。此外,为了在计算机上启用对不同架构的构建,应下载QEMU进行架构仿真

python3 -m pip install cibuildwheel
sudo apt-get install qemu-system  # for Ubuntu, see https://www.qemu.org/download for more details

仅对CPython (什么是PyPy...),非alpine Linux (什么是musllinux...),x86_64aarch64平台使用以下命令构建轮子

export CIBW_SKIP="pp* *musllinux*"
export CIBW_ARCHS="x86_64 aarch64"
cibuildwheel

这些也可以添加到 pyproject.toml 文件中

[tool.cibuildwheel]
skip = "pp* *musllinux*"
archs = "x86_64 aarch64" 

然后,在根目录下运行 cibuildwheel。这些命令将在 wheelhouse 目录中生成构建的分发版,然后可以使用以下命令将其上传到 PyPI:

twine upload wheelhouse/*

请注意,源分发版(仅源代码)仍然缺失。要生成它并将其上传到 PyPI,请运行以下命令:

python3 -m build --sdist
twine upload dist/*

最终结果在此处:这里。请注意,GitHub 动作尚未设置,因此此次发布触发的事件未能成功上传 wheels 到 PyPI。

v0.0.4:添加了构建和发布到 PyPI 的 GitHub 工作流程

详细信息请参见 build_publish_pypi.yml

v0.0.5:添加了由 CMake 构建的 C++ 项目

添加了一个 CMakeLists.txt 文件,用于使用 pybind11cmake 构建Python绑定。根据官方 pybind11 + cmake 示例 更新了 setup.py 文件。如果您更喜欢视频教程,请观看 Facile Tutorials 的这个视频

v0.0.6:添加了外部 C++ 依赖项

添加了使用 Eigen 的函数。这需要在 CIBW_BEFORE_ALL 脚本中安装 Eigen。但是,CentOS 存在一定的限制,需要处理这些问题

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发版

pypi_bonjour-0.0.6.tar.gz (6.4 kB 查看哈希值)

上传时间

构建分发版

pypi_bonjour-0.0.6-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (64.4 kB 查看哈希值)

上传时间 CPython 3.13 manylinux: glibc 2.24+ x86-64 manylinux: glibc 2.28+ x86-64

pypi_bonjour-0.0.6-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (59.6 kB 查看哈希值)

上传时间 CPython 3.13 manylinux: glibc 2.24+ ARM64 manylinux: glibc 2.28+ ARM64

pypi_bonjour-0.0.6-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (64.4 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.24+ x86-64 manylinux: glibc 2.28+ x86-64

pypi_bonjour-0.0.6-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (59.7 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.24+ ARM64 manylinux: glibc 2.28+ ARM64

pypi_bonjour-0.0.6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (65.2 kB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.24+ x86-64 manylinux: glibc 2.28+ x86-64

pypi_bonjour-0.0.6-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (60.1 kB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.24+ ARM64 manylinux: glibc 2.28+ ARM64

pypi_bonjour-0.0.6-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (63.9 kB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.24+ x86-64 manylinux: glibc 2.28+ x86-64

pypi_bonjour-0.0.6-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (58.6 kB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.24+ ARM64 manylinux: glibc 2.28+ ARM64

pypi_bonjour-0.0.6-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (64.1 kB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.24+ x86-64 manylinux: glibc 2.28+ x86-64

pypi_bonjour-0.0.6-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (58.6 kB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.24+ ARM64 manylinux: glibc 2.28+ ARM64

pypi_bonjour-0.0.6-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (63.7 kB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.24+ x86-64 manylinux: glibc 2.28+ x86-64

pypi_bonjour-0.0.6-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (58.4 kB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.24+ ARM64 manylinux: glibc 2.28+ ARM64

由...