Python日記

【Poetry】EnvCommandErrorの対処法と、Pythonを更新(3.9にアップデート)する流れ

2021年3月31日

Poetry Pythonのバージョンをアップデートするの巻
[EnvCommandError]
お悩みさん

Poetryを使っていたら、エラーがでてきた!

PoetryでPython3.9を使おうと思ったのですが、方法が分からず、かなり手こずってしました。

この記事では、Python3.9のダウンロードをして、Poetryのエラーの解決方法をお伝えしていきます。

この記事で学べること

  1. Python3.9のダウンロード方法
  2. EnvCommandErrorの解決方法
  3. poetry env useの注意点

環境

OSMac 10.15.4
Pythonpython 3.9
仮想環境Poetry
Homebrew8.0.19 Homebrew

【問題】PoetryでPython3.9が使えない

エラーの内容

Poetryのpyproject.tomlのファイルには、以下が書かれています。

[tool.poetry.dependencies]
python = "3.9"

これは、自分がpoetry initをしたときに、python3.9を選んだためです。

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:

現状の確認:Python2が使われている

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

上記の通り、python2が表示されました。

これが問題の原因のようです。

python3.9のダウンロード

python3.9の設定

Python3.9を使うために、アップデートではなく、ダウンロードをして解決をしていきます。

僕はMac Userなので、こちらからDLしています。

ここでは、Python3.9.2(当時の最新)をダウンロードしました

上記からPython3.9をダウンロード後に、以下のコマンドを連続して3つ実行しました。

PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
PATH="${HOME}/Library/Python/3.9/bin:${PATH}"
export PATH

再度、状況確認するが変化なし

poetry env info
Platform: darwin
OS:       posix
Python:   /System/Library/Frameworks/Python.framework/Versions/2.7

改めて、状況を確認してみましたが、まだpython2です。

Poetry env useではエラーが発生

Python3.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を変更して、Python3.9を使う

pyproject.tomlの書き換え

Poetryのpyproject.tomlをチェックしてみると、

python3.9なので、3.9.2に書き換えます。

[tool.poetry.dependencies]
python = "3.9.2"

ダウンロードしたバージョンに各々書き換えてください

poetry env use 3.9

これで、ダウンロードができるかを再度、実行してみます。

poetry env use 3.9
Creating virtualenv test in /Users/xxxxxxxxxxxx/Desktop/test/.venv
Using virtualenv: /Users/xxxxxxxxxxxx/Desktop/test/.venv
解決さん

ビンゴ!これで3.9がダウンロードできた

改めて確認をしてみます。

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

無事に解決ができたようです。

まとめ

この記事で学べんだこと

  1. Python3.9のダウンロード方法
  2. EnvCommandErrorの解決方法
  3. poetry env useの注意点

Poetry環境で、Python3.9を使うために、公式サイトからダウンロードし設定を行いました。

今後、最新のバージョンにアップデートする際も同様の手順で設定が可能です。

もしもエラーが出た際は、pyprojectをまずチェックしてみるといいと思います。

ここでつまずいてしまったので、だいぶ時間がかかってしまいました。

参考になれば嬉しいです。

-Python日記
-,