🐍

Poetry: 最初にこれだけおぼえておけば一応使えるメモ

2022/05/29に公開

Poetry を使ったことない人に渡すメモ的なものを雑に書きました.
ターゲットはパッケージ管理や仮想環境目的で使う方で, パッケージ作成まではカバーしていません.

poetry をインストール

  • host の python の pip を使って poetry をinstall.

    python3 -m pip install poetry
    

プロジェクト初期化

  • プロジェクトディレクトリに移動

  • ※interactiveにいろいろ聞いてくるが全部脳死Enterでよい

    poetry init
    

virtualenv設定

  • poetry は virtualenv を利用して環境を作ってくれる.

  • virtualenv のフォルダをどこに作るかを設定

    poetry config --local virtualenvs.in-project true
    
  • virtualenvs.in-project true で基本的にプロジェクトフォルダ直下の .venv に作られる

  • --local オプションはプロジェクト単位の設定ということで poetry.toml に追記される. もちろん --local を省略して global な設定としても良い.

  • どこに virtualenv フォルダを置くかは自由だがプロジェクト直下に置くのが主流

  • ※ 実際に virtualenv のディレクトリが作られるのは poetry installpoetry add <pkg name> 等をしたとき.

パッケージ追加

  • 後は入れたいパッケージを poetry add package で入れていく.

  • pyproject.toml にパッケージが記述され, poetry.lock に正確なバージョンや依存関係が記述される (これの計算のためにややinstallに時間が掛かる).

    poetry add numpy
    
  • ※ 削除は poetry remove <pkg name> ( pyproject.toml, poetry.lock からも自動削除される)

  • ※ 開発ツールの場合は --dev オプションを付ける等もあるがまぁおいおいわかっていけばよい.

プログラム実行

  • poetry run の次に通常のコマンドを書くことで, Poetry が利用している仮想環境 (今回は .venv 以下の Python とそれ経由のコマンド・ライブラリ群のこと) に入って実行される.

    poetry run python main.py
    

VSCode での Python Interpreter 選択

  • vscode でプロジェクトを開き, Ctrl + Shift + P key から Python Select Interpreter みたいなやつを入力して選択して, .venv/bin/python をインタプリタに設定

新しい環境で pyproject.toml, poetry.lock が存在しているプロジェクトの環境を構築するとき

  • poetry.lock があれば正確な依存関係が, pyproject.toml のみであれば install 時に指定したバージョン (していなければ latest) なパッケージ群を一括インストールしてくれる.

    poetry install
    

その他

  • pyenv: 様々な Python バージョンを利用するのに手放せないツール.
GitHubで編集を提案

Discussion