1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

awsコマンドでPythonのNo module named 'encodings'のエラーが出る

Posted at

概要

MacでAWS CLIのコマンドを実行した時、いつからかNo module named 'encodings'というコマンドが出るようになりました。この時にやったことを色々書いてます。
ただ、結論を先に言うと、__Python3を再インストール__して直しました。

事象と試したこと

awsコマンドを実行すると、以下のようにエラーが出るようになり色々ググってみることに。補足すると、AWS CLIの中でPythonを使っているため、Pythonも正しく設定されている必要があります。

$ aws configure --profile XXXX
...(省略)...
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
...(省略)...

試したのはいずれもパス関連の修正です。

1. PYTHONHOMEの設定を変えてみる

  • エラーをググると、PYTHONHOMEのパスを疑えというページが出てくるため.bash_profileを確認してみると、確かに設定されていませんでした。そのため、デフォルト値である/usr/localを設定してみることに。
  • 結果、エラーは変わりましたが、syntax errorという__別のエラーが出てくることに__...

2. PYTHONPATHの設定を変えてみる

  • これも同様に.bash_profileに色々な値を設定してみましたが、エラーは変わっても解決には至らず...

Macでは/usr/bin/pythonがデフォルトでPython2系のバージョンになっています。そのため、pyenvやAnacondaなど別のツールを使ってPython3をインストールしていましたが、この時Python3のパスは/usr/bin/pythonから変えていませんでした。いろいろ作業をしていく中でPyhton3のパスがおかしくなってしまったようです。
※pyenvやAnacondaが原因ではなく、作業のうちに環境を壊してしまったことが原因だと考えられます。

解決策

pyenvおよびAndacondaをアンインストールした後、以下を参考にPython3を再インストールしました。
【Python3】まっさらなMacにPythonの最新バージョンをインストールする手順まとめ

上記手順の中で、/usr/bin/pythonにはPython3のパスを当てるようにしました。無事、awsコマンドも通るようになりました。

雑感

正直、最初から再インストールしておけば良かった...と思いました。IDEでのインタプリタ再設定などが面倒かなと思ったのですが、ハマってた時間に比べれば全然短いです。

何事も諦めが肝心ですね....

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?