aws / sagemaker-training-toolkit

Train machine learning models within a 🐳 Docker container using 🧠 Amazon SageMaker.
Apache License 2.0
496 stars 118 forks source link

Version 4.1.4 fails to install because of the missing protobuf dependency #132

Closed szafranek closed 2 years ago

szafranek commented 2 years ago

Describe the bug Latest version of sagemaker-training-toolking fails to install via pip because the specified version of protobuf can't be found: pip3 install sagemaker-training results in an error because of the missing protobuf dependency. Logs below.

Using a previous version works: pip3 install sagemaker-training==4.1.2

To reproduce I followed the official tutorial and tried to install sagemaker-training-toolkit in a Docker container running in a SM Notebook instance.

Expected behavior Latest version of sagemaker-training-toolkit should install without an error.

Screenshots or logs Collecting sagemaker-training Downloading sagemaker_training-4.1.4.tar.gz (51 kB) Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from sagemaker-training) (1.18.2) Collecting boto3 Downloading boto3-1.23.10-py3-none-any.whl (132 kB) Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from sagemaker-training) (1.14.0) Requirement already satisfied: pip in /usr/local/lib/python3.6/dist-packages (from sagemaker-training) (20.0.2) Collecting retrying>=1.3.3 Downloading retrying-1.3.3.tar.gz (10 kB) Collecting gevent Downloading gevent-21.12.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (5.6 MB) Collecting inotify_simple==1.2.1 Downloading inotify_simple-1.2.1.tar.gz (7.9 kB) Requirement already satisfied: werkzeug>=0.15.5 in /usr/local/lib/python3.6/dist-packages (from sagemaker-training) (1.0.0) Collecting paramiko>=2.4.2 Downloading paramiko-2.11.0-py2.py3-none-any.whl (212 kB) Collecting psutil>=5.6.7 Downloading psutil-5.9.1-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (280 kB) ERROR: Could not find a version that satisfies the requirement protobuf<3.21,>=3.20 (from sagemaker-training) (from versions: 2.0.0b0, 2.0.3, 2.3.0, 2.4.1, 2.5.0, 2.6.0, 2.6.1, 3.0.0a2, 3.0.0a3, 3.0.0b1, 3.0.0b1.post1, 3.0.0b1.post2, 3.0.0b2, 3.0.0b2.post1, 3.0.0b2.post2, 3.0.0b3, 3.0.0b4, 3.0.0, 3.1.0, 3.1.0.post1, 3.2.0rc1, 3.2.0rc1.post1, 3.2.0rc2, 3.2.0, 3.3.0, 3.4.0, 3.5.0.post1, 3.5.1, 3.5.2, 3.5.2.post1, 3.6.0, 3.6.1, 3.7.0rc2, 3.7.0rc3, 3.7.0, 3.7.1, 3.8.0rc1, 3.8.0, 3.9.0rc1, 3.9.0, 3.9.1, 3.9.2, 3.10.0rc1, 3.10.0, 3.11.0rc1, 3.11.0rc2, 3.11.0, 3.11.1, 3.11.2, 3.11.3, 3.12.0rc1, 3.12.0rc2, 3.12.0, 3.12.1, 3.12.2, 3.12.4, 3.13.0rc3, 3.13.0, 3.14.0rc1, 3.14.0rc2, 3.14.0rc3, 3.14.0, 3.15.0rc1, 3.15.0rc2, 3.15.0, 3.15.1, 3.15.2, 3.15.3, 3.15.4, 3.15.5, 3.15.6, 3.15.7, 3.15.8, 3.16.0rc1, 3.16.0rc2, 3.16.0, 3.17.0rc1, 3.17.0rc2, 3.17.0, 3.17.1, 3.17.2, 3.17.3, 3.18.0rc1, 3.18.0rc2, 3.18.0, 3.18.1, 3.19.0rc1, 3.19.0rc2, 3.19.0, 3.19.1, 3.19.2, 3.19.3, 3.19.4, 4.0.0rc1, 4.0.0rc2, 4.21.0rc1, 4.21.0rc2, 4.21.0) ERROR: No matching distribution found for protobuf<3.21,>=3.20 (from sagemaker-training) WARNING: You are using pip version 20.0.2; however, version 21.3.1 is available. You should consider upgrading via the '/usr/bin/python3 -m pip install --upgrade pip' command. The command '/bin/bash -c pip3 install sagemaker-training' returned a non-zero code: 1

System information A description of your system.

4.1.4

Base docker image: tensorflow/tensorflow:2.2.0rc2-gpu-py3-jupyter Python 3.6 and Python 3.8

ml.t2.medium instance

satishpasumarthi commented 2 years ago

Hi, We have the protobuf package pinned in the latest versions. Could you please try using the latest version? Also, we require using py3.7+ as some of the packages used inside the toolkit are only available from python 3.7+ https://pypi.org/project/sagemaker-training/#history https://github.com/aws/sagemaker-training-toolkit/blob/master/setup.py#L43

szafranek commented 2 years ago

Hi, I just re-ran the steps and can confirm that it now works. It installed sagemaker-training==4.2.0 and protobuf==3.11.3, according to pip list.