由 wheel 构建的私有 Python 包出现错误。whl 在此平台上不受支持

private Python packages built by wheel got Error .whl is not a supported wheel on this platform

我写了一个C嵌入的python包,用下面的代码构建了一个wheel文件:

  python3 setup.py bdist_wheel

在我的 dist 文件夹中,我发现: mypackage-1.0-cp38-cp38-macosx_10_14_6_x86_64.whl

os version:10.15.7

64位-Python version:3.8

pip3 版本:21.1.3

我的第一个问题是我的macosx的版本是10.15.7,但是为什么wheel构建的.whl文件是10.14.6

然后我尝试使用以下方法安装软件包:

python3 -m pip  install dist/*

我收到错误消息:mypackage-1.0-cp38-cp38-macosx_10_14_6_x86_64.whl 在此平台上不受支持。

然后我将 .whl 文件更改为“mypackage-1.0-cp38-cp38-macosx_10_15_7_x86_64.whl”并得到了同样的错误。

有人知道这是什么问题吗? 下面是我的setup.py

#!/usr/bin/env python
from setuptools import setup, Extension
import numpy as np

c_mycode = Extension(
    'c_mycode',
    sources=['c_mycode/pymycode.c',
             'c_mycode/mycode.c' ],
    include_dirs=['c_mycode', np.get_include()],
    define_macros=[('NPY_NO_DEPRECATED_API', 'NPY_1_4_API_VERSION')])

setup(
    name='mypackage',
    version='1.0',
    description=(
      "a package in Python."
    ),
    setup_requires=["wheel"],
    author='xxx',
    author_email='xxx@xxx',
    license="BSD compatable (see the LICENSE file)",
    packages=['mycode'],
    ext_modules=[c_mycode]
)

可能有更好的方法,不过我借鉴了

的思路解决了问题

我添加了一行来指定平台的版本使用

options={'bdist_wheel':{'plat_name':'macosx_10_15_x86_64'}}