IT系ノウハウ Python

pyenv でバージョンを切り替えて virtualenv で仮想環境を作成する方法|Python, Mac

pyenv を用意する

pyenv をインストール

brew install pyenv

動作確認

インストールが可能なバージョンをリストしてくれるコマンド

pyenv install --list

実行例

Unco@HelloMyWorld ~ % which pyenv
/usr/local/bin/pyenv

Unco@HelloMyWorld ~ % pyenv install --list
Available versions:
  2.1.3
  2.2.3
  2.3.7
  2.4.0
  2.4.1
  2.4.2
  2.4.3
  2.4.4
  2.4.5
  2.4.6
  2.5.0
  2.5.1
  2.5.2
  2.5.3
  2.5.4
  :

初期化設定

pyenv init

実行例

Unco@HelloMyWorld ~ % pyenv init

# See the README for instructions on how to set up
# your shell environment for Pyenv.

README を見ろと出てくるので、以下の README を見ながらパスの設定をする

pyenv/README.md at master · pyenv/pyenv · GitHub
pyenv/README.md at master · pyenv/pyenv · GitHub

github.com

私の場合Macなので以下のように設定

実行例

Unco@HelloMyWorld ~ % echo 'eval "$(pyenv init --path)"' >> ~/.zprofile

echo 'eval "$(pyenv init -)"' >> ~/.zshrc

virtualenv を用意する

pipx をインストール

brew install pipx

pipx は brew や npx、apt と同じようなツールで、グローバルに使えながら仮想環境にパッケージをインストールしてくれる

virtualenv をインストール

pipx install virtualenv

実行例

Unco@HelloMyWorld ~ % pipx install virtualenv 
  installed package virtualenv 20.13.0, installed using Python 3.10.1
  These apps are now globally available
    - virtualenv
⚠️  Note: '/Users/Unco/.local/bin' is not on your PATH environment variable. These apps will not be globally accessible until
    your PATH is updated. Run `pipx ensurepath` to automatically add it, or manually modify your PATH in your shell's config
    file (i.e. ~/.bashrc).
done! ✨ 🌟 ✨

パスを設定する

pipx ensurepath

Unco@HelloMyWorld ~ % pipx ensurepath
/Users/Unco/.local/bin has been been added to PATH, but you need to open a new terminal or re-login for this PATH change to
    take effect.

You will need to open a new terminal or re-login for the PATH changes to take effect.

Otherwise pipx is ready to go! ✨ 🌟 ✨

新しいバージョンの仮想環境を作成

存在しているバージョンを確認

pyenv versions

実行例

Unco@HelloMyWorld ~ % pyenv versions
  system
  2.7.18
  3.6.12
* 3.8.5 (set by /Users/Unco/.pyenv/version)

存在していないバージョンをインストール

pyenv install <新しいバージョン>

実行例

Unco@HelloMyWorld ~ % pyenv install 3.9.5
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.9.5.tar.xz...
-> https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tar.xz
Installing Python-3.9.5...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.9.5 to /Users/Unco/.pyenv/versions/3.9.5

新しくインストールしたバージョンに設定

pyenv local <存在しているバージョン>

実行例

Unco@HelloMyWorld ~ % pyenv versions
  system
  2.7.18
  3.6.12
* 3.8.5 (set by /Users/Unco/.pyenv/version)
  3.9.5

Unco@HelloMyWorld ~ % pyenv local 3.9.5

Unco@HelloMyWorld ~ % python -V
Python 3.9.5

仮想環境を作成

virtualenv -p python<バージョン> <仮想環境名>

実行例

Unco@HelloMyWorld ~ % virtualenv -p python3.9.5 newEnv
created virtual environment CPython3.9.5.final.0-64 in 992ms
  creator CPython3Posix(dest=/Users/Unco/Projects/newEnv, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/Users/Unco/Library/Application Support/virtualenv)
    added seed packages: pip==21.3.1, setuptools==60.2.0, wheel==0.37.1
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

存在していなバージョンで仮想環境を作成しようとすると以下エラーが発生する

Unco@HelloMyWorld ~ % virtualenv -p python3.9.5 newEnv
RuntimeError: failed to find interpreter for Builtin discover of python_spec='python3.9.5'

この記事が役に立ったという方は
ボタンをポチッとしてくれたら喜びます

pipx · PyPI
pipx · PyPI

pypi.org

Install and Run Python Applications in Isolated Environments
Install and Run Python Applications in Isolated Environments

pythonrepo.com

Hot to Install Virtualenv on MacOS
Hot to Install Virtualenv on MacOS

www.deadbear.io

-IT系ノウハウ, Python
-