AWS CLI利用時のUnicode warningに対応する、Python3でのAWS CLIのインストール手順
気になるところ
Windows環境にてAWS CLIを利用した際(特にs3関係の操作をしたとき)に以下のようなメッセージが出力されることがあります。
aws s3 ls D:\Amazon\AWSCLI.\dateutil\parser.py:605: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
2017-06-06 15:05:28 awslogs-cloudtrail-0123456789
2017-06-01 19:13:19 cf-templates-0123456789
2017-06-09 16:21:23 log-info-0123456789
AWS CLIのmsiインストーラーはPython2系がインストールされる様になっており、
AWS CLIのコードの処理で、Unicode warningが出力される (警告表示されるだけで、通常大きな問題はないです。
ただログに該当の情報が出ると可視性が悪くなるため、可能ならば出ないようにしたいのが本音です。
簡単な対応法
AWS CLIは、Python3系にも対応しています。 Python3系では文字列をUnicodeで扱うようになっているので、該当の問題はでなくなります。なので、Python2系を他のプログラムで利用していなければ、Python3を利用するように変更するのが手っ取り早い対応となります。 また、コマンドについてはPython3でも共通となります。
(他にはAWS Tools for Windows PowerShellを使う、該当のコードを書き換えるなどがあります。)
ただ、直接インストールするためのmsiのパッケージは存在しないため、 Python3系をインストーラーでインストール後、 Python3のpipから、AWS CLIをインストールする必要があります。
インストール手順
既存のAWS CLIの削除 (msiでAWS CLIをインストール済みの場合に実行
- アンインストール スタートメニューを右クリックし、 コントロールパネル -> プログラム -> プログラムのアンインストール を開く AWS Command Line Interface を選択し、右クリック、アンインストールを行う
Python3のインストール
- パッケージのダウンロード
Pythonの公式webサイト(https://www.python.org/downloads/) へアクセスし、Python3のインストーラーをダウンロードする - インストール インストーラーを実行 最初のSetup画面で、 Add Python 3.x to PATH というチェックボックスがあるので、これにチェックを入れて、パスを通す
- 起動テスト
コマンドプロンプトから、pythonとコマンドを入力し、以下の表示で起動するかテストするPython 3.x.x (以下省略)起動したらexit()と入力しpythonを終了させる - パスの設定 (インストール時に設定を忘れた場合
スタートメニューを右クリックし、 コントロールパネル -> プログラム -> プログラムのアンインストール を開く
Python 3.x.x を選択し右クリック -> アンインストールと変更 を選択
セットアップ画面が開くので、 Modify を選択
最初の画面(Optional Features) は何も変更せず、Nextを選択
Advanced Option の画面で、 Add Python to enviromental Variables に追加でチェックを入れ、Installを選択
終了後、コマンドラインを起動し、起動テストをして動けばOK
AWS CLIのインストール
- インストール
コマンドプロンプトからpip install awscliを実行 - 起動テスト
awsとコマンドを入力し、usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]と出力されればOK
システム環境変数の更新
AWS CLI実行ファイルのパス情報をシステム環境変数のPATHの値に追加する
- OSログインユーザの確認 pipにてaws cliをインストールしたユーザ(Administrator想定)にてログインしていること
- ユーザ環境変数のPATHの値を確認
システムプロパティの画面より、環境変数の設定とユーザ環境変数のPATHに登録されている値を確認
PATHの値は、インストールしたPythonバージョンや実行ユーザにより異なる - システム環境変数のPATHに、ユーザ環境変数に登録されている値を登録
各値の区切りは「;」を利用する例
C:\Program Files\tool;C:\Program Files\soft - OS再起動
最後にOS再起動を実施し、起動後動作を確認する