1.pyenvとは
pyenv は複数の Python バージョンを簡単に切り替えて使えるツールです
開発環境で特定バージョンを指定したいときや、複数プロジェクトを並行開発する際に便利です
自分はWSLでbuildozerを使ってpythonのkivyで作ったandroidアプリをビルドするときに、python3.10が必要になったので、pyenvを使って環境構築をしました
2.OS別 pyenv インストール方法
◾ Linux(Ubuntu/Debian系)
1. 必要なパッケージのインストール
sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
2. pyenv のインストール
curl https://pyenv.run | bash
3. シェル設定ファイルに追記(例: bash)
.bashrcというシェル設定ファイルの一番下に以下の内容を追加します
# pyenv 設定
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - bash)"
eval "$(pyenv virtualenv-init -)"
以下のコマンドでシェルの設定を有効化します
source ~/.bashrc
◾ Windows
公式には未対応なので、代替として pyenv-win を使うことができます
1. インストール(PowerShell推奨)
Invoke-WebRequest -UseBasicParsing -Uri https://pyenv.run | Invoke-Expression
または手動で pyenv-win を GitHub から clone
3.主な pyenv コマンド
コマンド | 説明 |
---|---|
pyenv install –list | インストール可能な Python バージョン一覧を表示 |
pyenv install 3.11.8 | 指定バージョンの Python をインストール |
pyenv uninstall 3.11.8 | 指定バージョンをアンインストール |
pyenv versions | インストール済みのバージョン一覧表示 |
pyenv global 3.11.8 | システム全体の Python バージョンを指定 |
pyenv local 3.10.7 | カレントディレクトリ専用のバージョン指定(.python-version作成) |
pyenv shell 3.9.13 | 現在のシェル内だけ一時的にバージョンを切り替え |
pyenv which python | 現在使用している Python 実行ファイルのパス確認 |
pyenv rehash | シムの再生成(インストール直後やパッケージ追加後に実行) |
実際に環境構築するときは、バージョンごとにライブラリもインストールすると思うので、次に紹介するpyenv-virtualenvも併用すると便利です
4. pyenv-virtualenv とは?
pyenv のプラグインで、Pythonの仮想環境(virtualenv)を簡単に管理できる拡張機能です
- Python バージョンごとに独立した仮想環境を作成できる
- プロジェクトごとに異なる環境を切り替えられる
- pyenv の仕組みに統合されており、ディレクトリ移動で自動切り替えが可能
自動で仮想環境が有効になるというところが便利です
5. pyenv-virtualenvのインストール方法
前提条件:
- pyenv がインストール済みであること
- git が使えること
インストール手順(Unix系OS: Linux, macOS):
# pyenv plugins ディレクトリへ移動
cd ~/.pyenv/plugins
# pyenv-virtualenv をクローン
git clone https://github.com/pyenv/pyenv-virtualenv.git
6. pyenv-virtualenvの主なコマンド一覧
コマンド | 説明 |
---|---|
pyenv virtualenv <version> <env-name> | 仮想環境を作成(例:pyenv virtualenv 3.10.7 myenv310) |
pyenv activate <env-name> | 仮想環境を手動で有効にする |
pyenv deactivate | 仮想環境を無効にする |
pyenv versions | インストール済みのバージョンと仮想環境を表示 |
pyenv uninstall <env-name> | 仮想環境の削除(例:pyenv uninstall myenv310) |
pyenv local <env-name> | 現在のディレクトリで使う仮想環境を設定(.python-version に記録) |
7. 注意点・ポイント
- 仮想環境名は自由につけられるが、プロジェクト名 + Pythonバージョンを含めると分かりやすい(例:myapp-3.10)
- pyenv local を使うと、ディレクトリごとに仮想環境を自動的に切り替えてくれる
- 仮想環境ごとに pip install したライブラリは、他の環境には影響しない
- 複数の仮想環境を簡単に切り替えられるので、開発効率が上がる
- which python で仮想環境が有効かどうか確認できる
8. 使い方例(実践)
以下に実際の活用例を記載します
# Python 3.10.7 をインストール
pyenv install 3.10.7
# 仮想環境を作成
pyenv virtualenv 3.10.7 myenv310
# プロジェクトのディレクトリに移動して仮想環境を設定
cd ~/myproject
pyenv local myenv310
# ライブラリをインストール
pip install requests flask
# 仮想環境の確認
which python
# → ~/.pyenv/versions/myenv310/bin/python
これでディレクトリに入るたびに指定したバージョンのpythonと仮想環境が有効になります
バージョンの違いで動かなくなるツールを多数使用するときにとても便利なのでぜひ活用してみてください
コメント