amazon-linux-extrasがNo module named amazon_linux_extrasとなって動作しない問題
問題
Amazon Linuxでいろんなパッケージを簡単にインストールしてくれるamazon-linux-extrasなんですが、pyenvがPython3になっていると上手く動作しない問題があるみたい。
amazon-linux-extras /root/.pyenv/versions/3.9.12/bin/python: No module named amazon_linux_extras
その場合、Python3のsite-packagesにリンクを作ってあげれば良いという解決方法がみつかるけれど、Python3のバージョンが変わるたびに変更するのも面倒なので、別の解決方法を備忘録として残す。
解決方法
Python2で動かせば良いね
python2 -m amazon_linux_extras
※ 注意点
amazon_linux_extrasは本来shellで起動するようになっており、そこで環境変数やconfigファイルの読み込みが行われている。
一通り読んで、自分のやりたいことにこのshellが必要ないことがわかったのでこの対応を取ったが、shellでの設定が必要な環境の場合、期待した動作にならない可能性があるので注意すること。
所感
この機能をサポートしているなら、多少環境変えてもAmazon Linuxでちゃんと動作するように作って欲しいところではある。
2024年6月30日までサポートされるみたいだけど、その後はどうなのか疑問。
よくある質問 - Amazon Linux 2 | AWS
Python2の時代はとっくに終わってる中で、pyenvのバージョン変えただけで動かなくなるような初歩的な問題が改善されない点からみても、この機能自体を使っていくかは悩ましい。
今あるものを根本から変えるのは面倒くさかったけど、今後新しく何かを作るときにこの機能を使うかというと、避けたほうが良いかもしれない。