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
参考资料
- Pyenv 简介(真实 Python)。 URL: https://realpython.com/intro-to-pyenv/
为了生成 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
参考资料
- Pyenv 简介(真实 Python)。 URL: https://realpython.com/intro-to-pyenv/