Installing AWS CLI with pip is mainly useful when an existing script, plugin, or shell workflow still depends on AWS CLI v1 instead of the newer bundled AWS CLI v2 installer.

The awscli package on PyPI publishes AWS CLI v1, and current releases require Python 3.9 or later. Installing it inside a dedicated virtual environment keeps the aws binary and its Python dependencies separate from the system interpreter and from any existing AWS CLI v2 install.

AWS announced that AWS CLI v1 enters maintenance mode on July 15, 2026 and reaches end-of-support on July 15, 2027. Use this pip path when you need v1 compatibility; for new installs that do not depend on v1 behavior, install AWS CLI v2 instead.

Steps to install AWS CLI version 1 using pip:

  1. Confirm that the selected Python interpreter is new enough for the current awscli package.
    $ python3 --version
    Python 3.14.4

    Current AWS CLI v1 releases require Python 3.9 or later.

  2. Create a dedicated virtual environment for the AWS CLI v1 install.
    $ python3 -m venv ~/aws-cli-v1

    No output is expected when the environment is created successfully.

  3. Activate the virtual environment before installing or running the CLI.
    $ source ~/aws-cli-v1/bin/activate
    (aws-cli-v1)$

    In a later shell session, reactivate the environment before using aws, or call ~/aws-cli-v1/bin/aws directly without reactivating it.

  4. Install or update the awscli package inside the active virtual environment.
    (aws-cli-v1)$ python -m pip install --upgrade awscli
    Collecting awscli
      Downloading awscli-1.44.81-py3-none-any.whl.metadata (11 kB)
    ##### snipped #####
    Successfully installed PyYAML-6.0.3 awscli-1.44.81 botocore-1.42.91 colorama-0.4.6 docutils-0.19 jmespath-1.1.0 pyasn1-0.6.3 python-dateutil-2.9.0.post0 rsa-4.7.2 s3transfer-0.16.0 six-1.17.0 urllib3-2.6.3

    The package name is awscli, and this pip path installs AWS CLI v1 rather than v2.

  5. Confirm that the shell now resolves aws from the virtual environment.
    (aws-cli-v1)$ command -v aws
    /home/user/aws-cli-v1/bin/aws

    If this command still resolves /usr/bin/aws or another existing binary, reactivate the virtual environment and try again.

  6. Verify that the active environment reports AWS CLI v1.
    (aws-cli-v1)$ aws --version
    aws-cli/1.44.81 Python/3.14.4 Linux/6.8.0-57-generic botocore/1.42.91

    The decisive result is the aws-cli/1.44.81 prefix. The Python and platform tokens vary by host.

  7. Run a signed request from the same virtual environment when credentials are already configured or exported for the target account.
    (aws-cli-v1)$ aws sts get-caller-identity --query Account --output text
    123456789012

    Configure credentials first on a fresh host, then rerun the command from the same virtual environment. Related: How to configure AWS CLI on Linux and macOS
    Related: How to check the current caller identity in AWS CLI