LoginSignup
3
4

【Windows】Poetry + pyenvでPython環境構築

Posted at

はじめに

環境構築で少しハマったので手順を残しておきます。
Windowsユーザ向けの記事です。
最新情報は、公式ドキュメントをご参照ください。

環境

OS: Windows 10
pyenv-win: 3.1.1
Poetry: 1.6.1

pyenvインストール

Pythonのバージョン管理のため、pyenvを導入する。
pyenvを導入すると、プロジェクトごとにPythonのバージョンを切り替えて使うことができる。

pyenvではWindowsをサポートしていないので、フォーク版のpyenv-win を使う。

pyenv-winインストール

公式ドキュメントに記載されている以下のコマンドでインストールする。
PATHも自動で追加される。

Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1

動作確認

C:■■> pyenv --version
pyenv 3.1.1

Pythonインストール

pyenv-win でサポートされているPythonのバージョンのリストを見るには以下のコマンドを実行する。

pyenv install -l

Pythonインストール

pyenv install 3.10.11

Pythonのグローバルバージョン設定

pyenv global 3.10.11

Poetryインストール

Pythonの依存関係管理、仮想環境作成を行うため、Poetryをインストールする。

以下のコマンドでインストールする。

(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -

動作確認

C:■■■> poetry --version
Poetry (version 1.6.1)

プロジェクト作成

poetry new poetry-demo

ライブラリインストール

poetry add pendulum

Pythonプログラム実行

poetry run python your_script.py

ハマりポイント

実はPoetryインストール後にPythonのバージョンを上げる必要があることが分かり、もともと入っていたPythonをアンインストールして、pyenvをインストールした。

すると、poetryコマンドが通らなくなった。

C:■■> poetry --version
No Python at 'C:\■■\AppData\Local\Programs\Python\Python39\python.exe'

Poetryインストール時に、インストールされているPythonを指定している。
公式ドキュメントでは以下となっている。

(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -

py というのは、Pythonランチャー(py.exe)を指している。
Windows版のPythonインストーラにはPythonランチャーが付いている。
pyenvでインストールされるPythonはpython(python.exe)なので、こちらを指定してやる必要がある。
公式ドキュメントの書き方は、pyenvユーザではなくPythonインストーラを使ってインストールしたユーザ向けのものなのだろう・・

(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -

おわりに

公式ドキュメント通りにやればいけるやろ(安直)ではいけませんね・・
pythonとpyの違いを知れてよかった!

参考文献

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4