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.
$ python3 --version Python 3.14.4
Current AWS CLI v1 releases require Python 3.9 or later.
$ python3 -m venv ~/aws-cli-v1
No output is expected when the environment is created successfully.
$ 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.
(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.
(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.
(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.
Related: How to check AWS CLI version
(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