bdist_wheel 创建 py37 轮而不是 py36

bdist_wheel creates py37 wheel instead of py36

为了生成 sagemaker-training 存储库的 pip wheel [https://github.com/aws/sagemaker-training-toolkit.git]

我运行

python setup.py bdist_wheel

它导致创建 python 37 兼容轮

ls dist/
sagemaker_training-3.6.3.dev0-cp37-cp37m-linux_x86_64.whl

我检查了setup.py;它没有特别提到 py37.

有没有办法创建与 python36 兼容的二进制 [pip wheel]?

为什么我需要 py36 兼容的二进制文件?

因为py36不能消耗py37 wheel

RUN pip3 install sagemaker_training-3.6.3.dev0-cp37-cp37m-linux_x86_64.whl
 ---> Running in ca56241af5fa
ERROR: sagemaker_training-3.6.3.dev0-cp37-cp37m-linux_x86_64.whl is not a supported wheel on this platform.

这是因为wheel兼容调用Python解释器,也就是说,你可能已经安装了Python3.7,你可以通过 运行 which python.

快速验证这一点

解决方案

考虑 pyenv,例如我将使用 python 3.6.1

pyenv install 3.6.1

您可以通过 运行

验证安装
ls ~/.pyenv/versions/

并将安装的版本设置为 global 或本地(出于本示例的目的,我将其设置为全局)。

pyenv global 3.6.1

如果你愿意,你可以通过

验证这一点
python -V

最后,您可以创建一个与 Python3.6 兼容的轮子。

python setup.py bdist_wheel

参考资料

  1. Pyenv 简介(真实 Python)。 URL: https://realpython.com/intro-to-pyenv/