python-3.x - CMD 和 PowerShell 中的 AWS CLI
问题描述
在 Win 10 上,我安装了 Anaconda(通过 Chocolatey)和 AWS CLI。只要我处于以下状态之一,我就可以通过 AWS CLI 成功发出命令:
- Anaconda 提示
- Git Bash 提示符
- Visual Studio 代码中的 powershell 终端
但是,当我尝试从“直接”的 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)都没有设置PYTHONPATH
ORPYTHONHOME
环境变量。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 提示符执行命令,它就可以正常工作。
解决方案
推荐阅读
- android - 如何让 Jetpack 组合 IconButton 的宽度以适应儿童的宽度?
- go - 将 http.Response 转换为字节数组
- android - 如何在 android 应用程序中获取本机库(64 位 JNI .so)路径?
- html - 为什么 align-items 不居中 div?
- python - 在 Python 中使用 split 函数时如何防止自动转义反斜杠
- python - 从 gromacs 文件中读取数据并将其写入 hdf5 文件格式
- javascript - VS 代码将“它”变成“hasUncaughtExceptionCaptureCallback”。如何禁用此功能?
- server - 服务器到服务器上传
- python - 除了 sendKeys 之外,还有其他方法可以将文件上传到网站吗?
- android - 如何在 Firestore Android 中过滤多个字段