[EnvCommandError]
Poetryを使っていたら、エラーがでてきた!
PoetryでPython3.9を使おうと思ったのですが、方法が分からず、かなり手こずってしました。
この記事では、Python3.9のダウンロードをして、Poetryのエラーの解決方法をお伝えしていきます。
- Python3.9のダウンロード方法
- EnvCommandErrorの解決方法
- poetry env useの注意点
Python3.10をインストールする場合は、3.9の部分をすべて3.10に書き換えてください。
環境
OS | Mac 10.15.4 |
Python | python 3.9 |
仮想環境 | Poetry |
Homebrew | 8.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しています。
Windowsはこちらです。
ここでは、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
無事に解決ができたようです。
まとめ
Poetry環境で、Python3.9を使うために、公式サイトからダウンロードし設定を行いました。
今後、最新のバージョンにアップデートする際も同様の手順で設定が可能です。
もしもエラーが出た際は、pyprojectをまずチェックしてみるといいと思います。
ここでつまずいてしまったので、だいぶ時間がかかってしまいました。
参考になれば嬉しいです。
コメント