Ошибка загрузки CLI AWS: неизвестная кодировка: idna - PullRequest
0 голосов
/ 04 ноября 2018

Я пытаюсь отправить некоторые файлы до s3 с помощью интерфейса командной строки AWS, и у меня возникает ошибка:

upload failed: ... An HTTP Client raised and unhandled exception: unknown encoding: idna

Я считаю, что это специфическая проблема Python, но я не уверен, как включить этот тип кодирования для моего интерпретатора Python. Я только что установил Python 3.6 и убедился, что он используется powershell и cmd.

$> python --version Python 3.6.7

Если это не проблема, специфичная для Python, может быть полезно знать, что я только что недавно установил CLI AWS и правильно его настроил. Дайте мне знать, если что-то еще мне не хватает, чтобы помочь решить эту проблему. Спасибо.

Ответы [ 5 ]

0 голосов
/ 25 марта 2019

В Windows , это, вероятно, проблема с инструментами AWS-cli, устанавливаемыми с помощью установщика MSI. Кажется, лучший способ решить эту проблему - использовать инструменты aws-cli, установленные с python.

Пререквизиты: Python3 и Pip3

Убедитесь, что у вас установлены Python и Pip

C:\> python --version
Python 3.7.1
C:\> pip3 --version
pip 18.1 from c:\program files\python37\lib\site-packages\pip (python 3.7)

Удаление установщика MSI с инструментами AWS-CLI

Установите инструменты aws-cli с помощью pip

C:\> pip3 install awscli

Проверьте, есть ли уже на вашем пути aws-cli; если нет, добавьте его

C:\> where aws
C:\Program Files\Python37\Scripts\aws

Если нет, найдите место, где развернуты инструменты aws-cli, и добавьте путь к переменной среды PATH (можно установить в Панели управления> Система> Дополнительные параметры системы> Переменные среды ...).

Ниже приведен общий путь развернутых инструментов AWS cli:

Python 3 и pip3 - C:\Program Files\Python37\Scripts\

Python 3 и pip3 - опция пользователя в более ранних версиях Windows - %USERPROFILE%\AppData\Local\Programs\Python\Python37\Scripts

Python 3 и pip3 - опция пользователя в Windows 10 - %USERPROFILE%\AppData\Roaming\Python\Python37\Scripts

0 голосов
/ 21 марта 2019

В качестве обходного пути поместите следующий оператор импорта в файл aws-script.py .

import encodings.idna

Полный путь в 32-разрядной версии: c: \ Program Files (x86) \ Amazon \ AWSCLI \ bin \ aws-script.py

Полный путь в 64-разрядной версии: C: \ Program Files \ Amazon \ AWSCLI \ bin \ aws-script.py

Я нашел это решение для аналогичной проблемы в этот ответ

0 голосов
/ 23 декабря 2018

Я столкнулся с той же ошибкой и исправил ее, изменив порядок интерфейса командной строки AWC и пути Python:

До:

PATH=C:\Program Files\Python35\Scripts\;C:\Program Files\Python35\;...;C:\Program Files\Amazon\AWSCLI\bin\;...

После того, как:

PATH=...;C:\Program Files\Amazon\AWSCLI\bin\;...;C:\Program Files\Python35\Scripts\;C:\Program Files\Python35\

Похоже, что Python3 влияет на интерфейс командной строки AWS, который является просто вызывающей программой Python для cmd.

0 голосов
/ 24 января 2019

У меня была такая же проблема в Windows.

После изучения проблемы я понял, что проблема в aws-cli, установленном с помощью установщика MSI (x64). После удаления «AWS Command Line Interface» из списка установленных программ и установки aws-cli с помощью pip проблема была решена.

Я также пытался установить установщик MSI x32, но проблема отсутствовала.

0 голосов
/ 09 декабря 2018

Даже я столкнулся с той же проблемой. Я работал на Windows Server 2008 R2. Я пытался загрузить около 500 файлов на s3, используя следующую команду.

aws s3 cp sourcedir s3bucket --recursive --acl полный контроль владельца корзины --profile имя_файла

Он работает хорошо и загружает почти все файлы, но для исходных 2 или 3 файлов он обычно завершался с ошибкой: HTTP-клиент возник и необработанное исключение: неизвестная кодировка: idna

Эта ошибка не была последовательной. Файл, для которого загрузка не удалась, может произойти, если я попытаюсь запустить его снова. Это было довольно странно.

Пробовал методом проб и ошибок, и он начал работать хорошо.

Решение:

  1. Деинсталлированные Python 3 и AWS CLI.
  2. Установленный Python 2.7.15
  3. Добавлен путь установки Python в переменной окружения PATH. Также добавлен pythoninstalledpath \ scripts в переменную PATH.
  4. AWS CLI плохо работает с MS Installer на Windows Server 2008, вместо этого используется PIP.

Команда:

pip install awscli

Примечание: для работы pip, не забудьте добавить pythoninstalledpath \ scripts в переменную PATH.

У вас должна быть следующая версия:

Команда:

aws - версия

Вывод: aws-cli / 1.16.72 Python / 2.7.15 Windows / 2008ServerR2 botocore / 1.12.62

Вуаля! Ошибка ушла!

...