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