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

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

www.deadbear.io

-IT系ノウハウ, Python
-