AWS Developer Tools Blog

Announcing the end of support for Python 3.4 and 3.5 in the AWS SDK for Python and AWS CLI v1

On February 1, 2021, the AWS SDK for Python (Boto3 and Botocore) and the AWS Command Line Interface (AWS CLI) v1 will no longer support Python 3.4 and Python 3.5. We encourage you to upgrade to Python 3.6 or later (this deprecation doesn’t affect customers using Python 2.7).

Per the Python Software Foundation, Python 3.4.10 received its last security and bug fixes on March 18, 2019, and has been marked as end-of-life. Similarly, Python 3.5 released its final non-security update on November 1, 2019, and reached end-of-life status on September 13, 2020.

As these versions have stopped receiving updates, we’re seeing support drop within the Python community and among SDK dependencies. To make sure we’re providing up-to-date and secure libraries, we’re joining this migration. We encourage you to do the same to ensure your applications and services remain secure. We have included migration steps in this post to help you get started.

Migrating to Python 3.6 or later

If you’re currently using Python 3.4 or Python 3.5 as your runtime for AWS SDK for Python or AWS CLI v1, we recommend downloading Python 3.6 or later. For services hosted on Amazon Elastic Compute Cloud (Amazon EC2), most AWS Quick Start AMIs now provide Python 3.6+ out of the box:

  • Amazon Linux 2 (minimal setup required)
  • Red Hat Enterprise Linux 8
  • SUSE Linux Enterprise Server 15 SP1
  • Ubuntu 18.04
  • Ubuntu 20.04 LTS

AWS CLI users are strongly encouraged to migrate to AWS CLI v2, which doesn’t have a local Python dependency.

If you’re not ready to upgrade to Python 3.6+ or AWS CLI v2, you should review the following steps you may need to take.

Boto3 and Botocore

If you’re using Python 3.4 or 3.5, pip automatically halts updates at the last supported version. No actions are required until you decide to upgrade to Python 3.6+.

AWS CLI v1

For AWS CLI v1 users, we recommend upgrading to our recently released AWS CLI v2. AWS CLI v2 doesn’t have a dependency on a local Python runtime, which allows you to avoid these deprecations in the future. For installation instructions, see Installing, updating, and uninstalling the AWS CLI version 2. Keep in mind the following:

  • MSI Installer – If you install the AWS CLI v1 using the Windows MSI Installer, you’re not impacted by this deprecation. The MSI Installer remains up to date with each release.
  • Pip Installation – If you install AWS CLI v1 using pip with Python 3.4 or 3.5, you automatically stop receiving updates after the last supported release. No other changes are required.
  • Bundled Installer – If you install the AWS CLI v1 using the bundled installer, you must ensure that you download a copy of the bundled installer that supports Python 3.4 or 3.5 runtime. You can do this by downloading the file from https://s3.amazonaws.com/aws-cli/awscli-bundle-{VERSION}.zip, replacing {VERSION} with the desired version of the AWS CLI. For example, to download version 1.18.165, use the following command:

    $ curl https://s3.amazonaws.com/aws-cli/awscli-bundle-1.18.165.zip -o awscli-bundle.zip

    Then continue following the installation instructions, starting with step 2.

Conclusion

If you’re currently using Python 3.4 or Python 3.5 as your runtime for AWS SDK for Python or AWS CLI v1, we encourage you to upgrade to Python 3.6 or later. Please share your questions, comments, and issues with us on GitHub.

Nate Prewitt

Nate Prewitt

Nate is a Software Development Engineer working on the AWS SDK for Python and AWS CLI. He is passionate about building tools to improve the developer experience. You can find him on Twitter @nateprewitt and GitHub @nateprewitt.