微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python bdist_wheel + install 有效,但由于 PEP 517 sdist + install 失败

如何解决Python bdist_wheel + install 有效,但由于 PEP 517 sdist + install 失败

我正在开发一个 Python 包,它使用 Pybind11 + cmake 包装了一个 C++ 库,代码可在 https://github.com/bayesmix-dev/pybmix

由于我在 Linux 上工作,为了通过 PyPi 分发它,我知道有两种选择:

  1. 构建一个 manylinux 轮子
  2. 分发二进制文件用户需要在本地安装

鉴于我不确定有多少用户会使用我的套餐,我选择了第二个选项。此外,我通过 CMake 子模块处理所有 C++ 库,因此该库是“自包含”的。

现在的问题是:运行

python3 setup.py bdist_wheel

生成一个文件 dist/pybmix-0.0.2-cp38-cp38-linux_x86_64.whl,由于 linux_... 部分而损坏。但是正在运行

pip3 install pybmix-0.0.2-cp38-cp38-linux_x86_64.whl

适用于我的机器

运行

python3 setup.py sdist

生成文件 dist/pybmix-0.0.2.tar.gz,安装失败:

pip3 install dist/pybmix-0.0.2.tar.gz

.....
 
subprocess.CalledProcessError: Command '['cmake','--version']' returned non-zero exit status 1.
----------------------------------------
ERROR: Failed building wheel for pybmix
Failed to build pybmix
ERROR: Could not build wheels for pybmix which use PEP 517 and cannot be installed directly

也可能相关但也可能不相关,我正在使用协议缓冲区生成一些 Python 和 C++ 文件,这是在 CMakeLists.txt 文件中完成的,因此在我的 setup.py 中我按顺序覆盖了 build_py首先调用 build_ext(在 https://github.com/pybind/cmake_example 中被覆盖)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。