Linux Python シェルコマンド プログラミング

【備忘録】pyenvとpoetryの使い方

pyenvの基本

  • 複数のPythonバージョンを簡単にインストール・切り替えできるツール
  • プロジェクトごとにPythonのバージョンを変えたいときに便利

pyenv コマンド早見表(macOS/Linux対応)

区分コマンド
動作しているか確認pyenv --version
インストール可能なPythonバージョンを一覧pyenv install --list
特定のバージョンを探すpyenv install --list | grep 3.11
特定バージョンをインストールpyenv install 3.11.6
バージョン一覧pyenv versions
グローバルなPythonバージョンを設定pyenv global 3.11.6
ローカル(ディレクトリ)のPythonバージョンを設定pyenv local 3.11.6
再読み込みpyenv rehash
現在のPythonバージョンを確認python --version or pyenv version
Pythonの場所を確認which python

Poetryの基本

  • Poetryは、Pythonのパッケージ(ライブラリ)管理ツール
  • 最近のRaspberry Pi OSはpipが使えなかったりするので、Poetryでライブラリの管理をすると楽みたい
  • プロジェクト毎に仮想環境を作ってそこにパッケージをインストールできる。このためシステムや他のプロジェクトを汚さない
  • 使用するPythonのバージョンは指定できるが、Pythonそのもののインストールはできない。pyenvが使われている場合、poetryはpyenvのインストールしたpythonを複製して仮想環境を作る。
  • パッケージの依存関係は.tomlおよび.lockファイルに記録される
  • .tomlファイル入ったプロジェクトフォルダを配布すれば、現地でpoetry installして再現できる
  • 完全に開発時と同じ環境を再現するには.lockファイルが必要。ライブラリ/パッケージを世間に配布する時は含めないのが普通らしい
  • 個人で開発・実験用に仮想環境を使うだけであれば、.toml .lock の生成はPoetryに任せてOK

コマンド早見表

基本コマンド

操作コマンド例
プロジェクト(ディレクトリ)新規作成poetry new my_app
既存プロジェクト(ディレクトリ)に導入poetry init
パッケージを追加poetry add requests
パッケージを削除poetry remove requests
開発用パッケージ追加poetry add --dev black
依存ライブラリのインストールpoetry install
Pythonスクリプトを実行(確実に仮想環境を使用)poetry run python script.py
Poetry基本コマンド早見表

poetry shellやpoetry env activateといったコマンドもあるが、最近のバージョンではpoetry shellコマンドがデフォルトでは使えない。poetry env activateは、poetry runを使うなら不要。poetry env activateをしても仮想環境が正しく使われないことがあるので、poetry runを使った方が無難。

パッケージアップデート関連コマンド

操作コマンド
全てのパッケージをアップデートpoetry update
特定パッケージだけをアップデートpoetry update requests
パッケージのバージョン状況の確認(現在と最新)poetry show --latest
パッケージアップデートコマンド

pyenvのインストール

MacOS

# macOS:
brew install openssl readline sqlite3 xz zlib

# pyenv本体
brew install pyenv(mac)

# パスを通す
# .zshrc または .bashrc に追加
bash<br>export PYENV_ROOT="$HOME/.pyenv"<br>export PATH="$PYENV_ROOT/bin:$PATH"<br>eval "$(pyenv init --path)"<br>eval "$(pyenv init -)"<br>

Ubuntu


# Ubuntu
# 必要なパッケージのインストール
sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

# pyenv本体
git clone https://github.com/pyenv/pyenv.git ~/.pyenv(Ubuntu)

# パスを通す
# .zshrc または .bashrc に追加
bash<br>export PYENV_ROOT="$HOME/.pyenv"<br>export PATH="$PYENV_ROOT/bin:$PATH"<br>eval "$(pyenv init --path)"<br>eval "$(pyenv init -)"<br>

Poetryのインストール

curl -sSL https://install.python-poetry.org | python3 -

PATHを通す。 .bashrc.zshrc に追記

export PATH="$HOME/.local/bin:$PATH"

インストール確認

poetry --version

-Linux, Python, シェルコマンド, プログラミング