poetryで、3.9を使うときに、
いろいろと手こずってしまったので、対象法をかいておきます。
エラーの内容
前提
pyproject.tomlのファイルには、以下が書かれています。
[tool.poetry.dependencies]
python = "3.9"
これは、自分がpoetry initをしたときに、python3.9を選んだためです。
エラーの内容
いつも通りpoetry run pythonを実行したところ、以下のエラーが発生しました。
[EnvCommandError]
Command python3.9 -c "import sys; print('.'.join([str(s) for s in sys.version_info[:3]]))" errored with the following return code 127, and output:
現状の確認
poetryの状況を確認してみます。
poetry env info
コマンドで、以下がでてきました。
Virtualenv
Python: 2.7.16
Implementation: CPython
Path: NA
System
Platform: darwin
OS: posix
Python: /System/Library/Frameworks/Python.framework/Versions/2.7
python 2.7.16が表示されました。
python3.9のダウンロード
python3.9の設定
調べたところ、python3.9を使うには、
アップデートではなく、ダウンロードが早そうでした。
僕はMac Userなので、こちらからDLしています。
参考 Download the latest version for Mac OS Xpythonダウンロード後に、以下のコマンドを連続して3つ行いました。
PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
PATH="${HOME}/Library/Python/3.9/bin:${PATH}"
export PATH
再度、状況確認
poetry env info
改めて、状況を確認してみると、まだpython2.7です。
Platform: darwin
OS: posix
Python: /System/Library/Frameworks/Python.framework/Versions/2.7
こちらも、再び、3.9を使えるように設定してみます。
poetry env use 3.9
しかしまたエラーがでてきました。
[NoCompatiblePythonVersionFound]
The specified Python version (3.9.2) is not supported by the project (3.9).
Please choose a compatible version or loosen the python constraint specified in the pyproject.toml file.
pyproject.tomlの書き換え
上記のエラーには心当たりがありました。
参考 【poetry】python2→python3に変更したい!「poetry env use」のエラーを解決クリワンのPython日記このときの内容で対処できるかもと思い出します。
pyproject.tomlが、python3.9なので、3.9.2に書き換えます。
[tool.poetry.dependencies]
python = "3.9.2"
poetry env use 3.9
これで、ダウンロードができるかを再度、実行してみます。
poetry env use 3.9
ビンゴ!これで3.9がダウンロードできました。
Creating virtualenv test in /Users/xxxxxxxxxxxx/Desktop/test/.venv
Using virtualenv: /Users/xxxxxxxxxxxx/Desktop/test/.venv
改めて、以下で確認してみます。
poetry env info
はい、問題なく解決できました!
Virtualenv
Python: 3.9.2
Implementation: CPython
Path: /Users/xxxxxxxxxxxx/Desktop/test/.venv
Valid: True
System
Platform: darwin
OS: posix
Python: /Library/Frameworks/Python.framework/Versions/3.9
poetry env use 3.9.4
python 3.9.4もリリースされましたが、
そちらも同様の流れです。
参考URLを記載しておきます。
参考 python3.9.4python 参考 「Python 3.9.3」に意図せぬバイナリ非互換が混入、「Python 3.9.4」が緊急リリース窓の杜まとめ
poetry 3.9を使うために、
まずは、pythonの公式サイトから、ダウンロードをして設定ができました。
ここでつまずいてしまったので、だいぶ時間がかかってしまいました。
EnvCommandError が出たときの参考になれば嬉しいです。