【EnvCommandErrorの対処法】poetryでpython3.9に更新する流れ(3.9.5も同様)

【EnvCommandErrorの対処法】poetryでpython3.9に更新する流れ

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 が出たときの参考になれば嬉しいです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA