发布到PyPI教程
项目描述
$\texttt{PyPI-Bonjour}$ 🥖
发布到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。有关使用pybind11
与setuptools
的介绍,请参阅此处。
请观看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_64
和aarch64
平台使用以下命令构建轮子
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
文件,用于使用 pybind11
和 cmake
构建Python绑定。根据官方 pybind11
+ cmake
示例 更新了 setup.py
文件。如果您更喜欢视频教程,请观看 Facile Tutorials 的这个视频。
v0.0.6:添加了外部 C++ 依赖项
添加了使用 Eigen
的函数。这需要在 CIBW_BEFORE_ALL
脚本中安装 Eigen
。但是,CentOS 存在一定的限制,需要处理这些问题。
项目详情
哈希值 用于 pypi_bonjour-0.0.6-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e5c4ec457c7223fa0866734190c745a6941ce41f4a6bb0b418b40fde5fbaa7bc |
|
MD5 | c9bece8d8816b8f09580c350862bf695 |
|
BLAKE2b-256 | cfe65f1bb0ba45f7cefeecb92a1571157496db2b4e754ed536265866cc28ffc7 |
哈希值 用于 pypi_bonjour-0.0.6-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 73443a82b1c167cd408072ecac43ec0dfc385a1e85abd8ddd7002c0420dc9485 |
|
MD5 | 9e9750b37544048f89ef4464c4132a2f |
|
BLAKE2b-256 | 5b05635434b426c816b2d0eadc608a98d53c9c560fc78ce48a0c470ac198a73d |
哈希值 用于 pypi_bonjour-0.0.6-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 489717731d59d1cb1556199c053ba26c31aea2ae16472e8a20aed888dadd4dd7 |
|
MD5 | 4001c41213108b15270af09ebd91264b |
|
BLAKE2b-256 | 3a84d66bfcabb00e5bd7de7149007110987aa96f4d16d706507abc29370c053a |
哈希值 用于 pypi_bonjour-0.0.6-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 068828f18641a46e29b09ce396d387052cc9e352dfe8d8be2a9616a7f18bbcfa |
|
MD5 | b012f4ad572e4aafaa92dfc379091c8f |
|
BLAKE2b-256 | b472da291c1077953f416a651323c0291dd2523ccf5e17e6ce2b27fe40076f1a |
哈希值 用于 pypi_bonjour-0.0.6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7cc37e85cc3cd7970a2a8e6226fc165420e61b5edf24d9f7180389c2e1c61add |
|
MD5 | 9f80df667bf17b356109b94b82c39332 |
|
BLAKE2b-256 | 15d6cf238e78eefc6df75b52ec98c37e75adaaf9a703d679fc097d7516e12790 |
哈希值 用于 pypi_bonjour-0.0.6-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5b3c0b66a9a172412d1ddc29be0f71a8536c4c27991f76b6d821c45baad4a575 |
|
MD5 | 6e699d084c4b27298ca36d25702da9cb |
|
BLAKE2b-256 | cda37a98690550528f045154328dd70b08248fd22057fd1f67023ce714d02070 |
哈希值 用于 pypi_bonjour-0.0.6-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | eabc31d69ff72c29707079f893c29f103ad23ea4ba07cc3d33052d45122b85ba |
|
MD5 | 8a5b59605f1dd746896dad6da4aaa811 |
|
BLAKE2b-256 | cb4c4591a374991ae9a713d7d2bc25de95308178d77ee9d9b3edce55b0711b84 |
哈希值 用于 pypi_bonjour-0.0.6-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a3410266623e34d3a213db4c7f3ea8fc327cf90ff43f20ac90fa2de18a7338b7 |
|
MD5 | 218b12575b0ac93235ce14f9d6c2d0af |
|
BLAKE2b-256 | 783f88d9552d9be709e51f0f33f6e59b56fd66ed555a73267bd1f162498458a5 |
哈希值 用于 pypi_bonjour-0.0.6-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 44888dadd07788d416fd4ad5e17e52c91af7c28c3a41dc9a8abec00b55a46549 |
|
MD5 | c04edafe574d1a8dab5d5bb584159f3e |
|
BLAKE2b-256 | dfbc1172ef7384f69e510b1f44a29a4a4da8f98e20513759733f81ef01311c81 |
哈希值 用于 pypi_bonjour-0.0.6-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b2c37e04422d09cc2da831f65cb4a79d3fcfe47478d783388c40b8661d8df8ba |
|
MD5 | 2f42637fd052ccdd294e65552d7fcd49 |
|
BLAKE2b-256 | 534238e52faf9a48bcb848b2bb292d713d1b171c2cbb42f99b193b251d9bf642 |
哈希值 用于 pypi_bonjour-0.0.6-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9986fd9c9ca2fe426c4874e0d313e431d1547bd029aabb120ed29640b7470843 |
|
MD5 | 271a1d09466a83a02884dbaa8f94166b |
|
BLAKE2b-256 | 27607c12aaebdb09aa239c0c332770fd58b317f0e3ced97e28e3320a428ef0e6 |
哈希值 用于 pypi_bonjour-0.0.6-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7e5c99727291f0c84096db606d72620d1670f8f18f020bb2df5522b38c056b8b |
|
MD5 | f388576b286e0b55321a6403315ca821 |
|
BLAKE2b-256 | e0473960550a7fe07bd540f7b480f79c4b971e0cba23e28c0d2f1c9bbcbbca4d |