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 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