Installing AWS CLI through pip is useful when the command needs to live inside an existing Python-managed workflow instead of the distro package-manager path or the official bundled installer. That approach keeps the CLI in the same package-management path as other Python-based automation and makes it straightforward to upgrade or pin a specific AWS CLI v1 release.

The awscli package published on PyPI installs AWS CLI version 1, not the current bundled AWS CLI version 2. A user-scoped install places the `aws` executable in the Python user bin directory, usually ~/.local/bin on Linux, and the command reads the same ~/.aws/config and ~/.aws/credentials files used by other AWS SDK and CLI workflows.

Current distro-managed Python builds can change whether this method works unchanged. On recent Debian and Ubuntu releases, a system-managed pip can stop the install with externally-managed-environment, and any host that already has AWS CLI v2 can still resolve that other `aws` binary first unless the shell path is checked carefully.

Steps to install AWS CLI version 1 using pip:

  1. Confirm that the shell is using Python 3.9 or later and a pip command bound to that interpreter.
    $ python3 --version
    Python 3.12.3
    
    $ python3 -m pip --version
    pip 24.0 from /usr/lib/python3/dist-packages/pip (python 3.12)

    On current distro-managed Python installations, the next step can fail with externally-managed-environment. If that happens, switch to a dedicated Python environment or use the AWS CLI v2 installer instead of forcing packages into the system interpreter.

  2. Install or update the awscli package in the current user's Python path.
    $ python3 -m pip install --upgrade --user awscli
    Collecting awscli
      Downloading awscli-1.44.68-py3-none-any.whl.metadata (11 kB)
    ##### snipped #####
    Successfully installed PyYAML-6.0.3 awscli-1.44.68 botocore-1.42.78 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 PyPI package name is awscli, and this method installs AWS CLI version 1 rather than the separate version 2 bundled installer.

  3. Prepend the user-local bin directory to PATH when the new aws executable is not yet visible in the current shell.
    $ export PATH=~/.local/bin:$PATH
    
    $ command -v aws
    /home/user/.local/bin/aws

    Add the same export PATH=~/.local/bin:$PATH line to ~/.profile, ~/.bashrc, or ~/.zshrc when new login shells also need to find the pip-installed binary.

  4. Check both the resolved binary path and the reported version so the shell is using the pip-installed CLI rather than another aws command earlier in PATH.
    $ command -v aws
    /home/user/.local/bin/aws
    
    $ aws --version
    aws-cli/1.44.68 Python/3.12.3 Linux/6.12.76-linuxkit botocore/1.42.78

    AWS CLI versions 1 and 2 use the same aws command name, so the executable path matters as much as the version string during verification.

  5. Configure credentials and default settings before using the new install against an AWS account.
    $ aws configure
  6. Run a simple signed request after configuration to confirm that the installed CLI can reach AWS with the intended identity.
    $ aws sts get-caller-identity
    {
        "UserId": "AIDASAMPLEUSERID",
        "Account": "123456789012",
        "Arn": "arn:aws:iam::123456789012:user/PlatformOperator"
    }