首页 > 解决方案 > CMD 和 PowerShell 中的 AWS CLI

问题描述

在 Win 10 上,我安装了 Anaconda(通过 Chocolatey)和 AWS CLI。只要我处于以下状态之一,我就可以通过 AWS CLI 成功发出命令:

但是,当我尝试从“直接”的 CMD 或 PowerShell 窗口发出命令时,会出现错误:

C:\>aws s3 ls
Traceback (most recent call last):
  File "c:\Users\barias\AppData\Roaming\Python\Python37\Scripts\aws.cmd", line 50, in <module>
    import awscli.clidriver
  File "C:\Users\barias\AppData\Roaming\Python\Python37\site-packages\awscli\clidriver.py", line 17, in <module>
    import botocore.session
  File "C:\tools\Anaconda3\lib\site-packages\botocore\session.py", line 30, in <module>
    import botocore.credentials
  File "C:\tools\Anaconda3\lib\site-packages\botocore\credentials.py", line 34, in <module>
    from botocore.config import Config
  File "C:\tools\Anaconda3\lib\site-packages\botocore\config.py", line 16, in <module>
    from botocore.endpoint import DEFAULT_TIMEOUT, MAX_POOL_CONNECTIONS
  File "C:\tools\Anaconda3\lib\site-packages\botocore\endpoint.py", line 22, in <module>
    from botocore.awsrequest import create_request_object
  File "C:\tools\Anaconda3\lib\site-packages\botocore\awsrequest.py", line 26, in <module>
    import botocore.utils
  File "C:\tools\Anaconda3\lib\site-packages\botocore\utils.py", line 31, in <module>
    import botocore.httpsession
  File "C:\tools\Anaconda3\lib\site-packages\botocore\httpsession.py", line 7, in <module>
    from urllib3.util.ssl_ import (
ImportError: cannot import name 'ssl' from 'urllib3.util.ssl_' (C:\tools\Anaconda3\lib\site-packages\urllib3\util\ssl_.py)

我不是 Python 程序员,所以这个错误的含义不言自明。

关于我的 Anaconda 安装的旁注:

我很惊讶地看到 Anaconda 安装在C:\tools. 我认为这是因为(1)我安装 Anaconda 的巧克力脚本是在该文件夹中执行的,并且(2)Anaconda 巧克力包可能被设计为安装在当前工作目录中?无论如何,我不认为这个问题是 Anaconda 安装位置的结果。

我还发现我必须手动将 python exe 放到路径上。我不确定为什么 Anaconda 安装没有为我做到这一点。

事实证明,我可以成功地从 CMD 或 PowerShell 向同一个 AWS 账户发出 terraform 命令。我原以为如果 AWS CLI 不起作用,那么 terraform 也会被破坏。诡异的。

所有提示(Git Bash、Anaconda、CMD、PowerShell)都没有设置PYTHONPATHORPYTHONHOME环境变量。Anaconda 路径具有以下环境变量:

CONDA_DEFAULT_ENV=base
CONDA_EXE=C:\tools\Anaconda3\Scripts\conda.exe
CONDA_PREFIX=C:\tools\Anaconda3
CONDA_PROMPT_MODIFIER=(base) 
CONDA_PYTHON_EXE=C:\tools\Anaconda3\python.exe
CONDA_SHLVL=1

我尝试在 CMD 窗口中设置这些,但它没有解决问题。此外,Git Bash 提示符成功处理了 AWS CLI ......并且它没有配置任何关于 python 或“conda”的环境变量。

关于我为什么会收到此错误的任何想法?请记住,只要我从 Anaconda 提示符执行命令,它就可以正常工作。

标签: python-3.xwindowsamazon-web-servicesanacondaaws-cli

解决方案


推荐阅读