ラベル pyenv の投稿を表示しています。 すべての投稿を表示
ラベル pyenv の投稿を表示しています。 すべての投稿を表示

2025年9月8日月曜日

pyenv 自身を更新する方法

pyenv 自身を更新する方法

概要

Homebrew などは brew update すればいいですが Ubuntu などに直接インストールした場合にはそうはいきません
今回はそんな場合の pyenv のバージョンアップ方法を紹介します

環境

  • Ubuntu 24.04
  • pyenv 2.6.1 -> 2.6.7

コマンド

  • pyenv update

最後に

一定以上の pyenv であればデフォルトで update コマンドが使えます
古い pyenv であれば

  • rm -rf ~/.pyenv
  • curl https://pyenv.run | bash

で最新バージョンをインストールし直すといいかなと思います
ただこの方法だとインストールした Python までアンインストールされるのでインストールコマンドだけ実行しても最新版になるかもしれません

参考サイト

2024年9月19日木曜日

Windows 上に pyenv をインストールする方法

Windows 上に pyenv をインストールする方法

概要

過去に Cygwin 上でトライしましたが無理だったので今回は pyenv-win を使います

環境

  • Windows 10
  • pyenv-win 3.11

インストール

PowerShell 上で以下を実行します

Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"

再度 PowerShell を立ち上げ直して pyenv コマンドを使えることを確認します

python インストール

  • pyenv install 3.11.9

(なぜか 3.11.10 が pyenv update しても出てこなかったです)

動作確認

  • mkdir test
  • cd test
  • pyenv local 3.11.9
  • pip install pipenv
  • pipenv install requests
  • pipenv run python -c "import requests"

でとりあえずちゃんとモジュールが読み込めることを確認しましょう

最後に

Windows 上で pyenv を使いたい場合は素直に pyenv-win を使いましょう
どこまで動くかは要検証ですが簡単なスクリプトを動かすだけならとりあえずインストールしておいてもいいのかもしれません

参考サイト

2024年2月13日火曜日

ModuleNotFoundError: No module named '_lzma'

ModuleNotFoundError: No module named '_lzma'

概要

Ubuntu + pyenv 環境で発生したので対処しました

環境

  • Ubuntu 22.04.3
  • pyenv 2.3.31

対処方法

  • sudo apt install -y liblzma-dev
  • pyenv uninstall 3.11.3
  • pyenv install 3.11.3

動作確認

Python 3.11.3 (main, Feb  5 2024, 14:46:38) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import lzma

2022年11月10日木曜日

pyenvでsystemを使っているときにsystemのpythonのパスを確認する方法

pyenvでsystemを使っているときにsystemのpythonのパスを確認する方法

環境

  • macOS 11.7.1
  • pyenv 2.3.3 (via homebrew)

コマンド

  • pyenv which python

2022年1月6日木曜日

pyenv の system の python のバージョンを Homebrew でインストールした python にする方法

pyenv の system の python のバージョンを Homebrew でインストールした python にする方法

概要

なぜか pyenv の system の python のバージョンが 2.7 のままになっており、Mac に標準でインストールされている Python (/usr/bin/python) になっていました

system の python は Homebrew でインストールした最新の python にしたく方法を模索して解決したので方法を解決します

環境

  • macOS 11.6.2
  • pyenv 2.0.1
  • python 3.9.9

結論

  • vim .zshrc
export PATH="/usr/local/opt/python@3.9/libexec/bin:$PATH"
export PATH="/Users/username/.pyenv/shims:$PATH"

# ...

eval "$(pyenv init -)"

pyenv の which python はスクリプトを実行する

~./pyenv/shims/python というスクリプトを最優先で実行する必要があります

このスクリプトは Homebrew でインストールした Python よりも優先的に実行する必要があります

pyenv は PATH に設定されている python を使う

上記で説明したスクリプトは PATH に設定されている優先度の高い python を system の python として実行します

つまり Mac にデフォルトでインストールされている /usr/bin/python よりも優先度を高く Homebrew でインストールした python をPATH に設定します

ちなみに PATH は左に設定されていればされているほど優先度が高くなります

正しい優先度の確認

以下のようになっていれば Homebrew でインストールした最新版を system として使うようになっています

  • type -a python
python is /Users/username/.pyenv/shims/python
python is /usr/local/opt/python@3.9/libexec/bin/python
python is /usr/bin/python

最後に

あと嵌りそうなポイントは PATH の上書きになります

zsh + tmux の場合 .zshrc が複数回実行されて PATH の優先度が変わる可能性があるので注意しましょう

2021年6月18日金曜日

macOS 11.4 で pyenv を使う方法

macOS 11.4 で pyenv を使う方法

概要

macOS 11 の場合 pyenv で指定のバージョンの Python をインストールする際にコンパイルエラーになるので注意が必要です

環境

  • macOS 11.4
  • pyenv 2.0.1

pyenv のインストール

  • brew update
  • brew install pyenv

pyenv の設定

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

ターミナルのセッションを再起動

ログインするなり新しいターミナルを起動しましょう

  • pyenv --version

指定した Python のバージョンをインストール

  • pyenv install 3.8.3

implicit declaration of function ‘sendfile’ is invalid in C99 対策

インストールした Python を使う

  • pyenv versions
  • pyenv local 3.8.3
  • python --version

python が使えない場合はセッションをクリアしてみてください (再ログイン or ターミナル再起動)

元に戻す

pyenv でインストールした python が優先されるので Homebrew などでインストールした python に戻したい場合は

  • pyenv local system

で元に戻ります

参考サイト