Zenn
🐍

Raspberry Pi上のpython開発環境整備(仮想環境)

2025/04/06に公開

またPythonの勉強が必要になり余っていたRaspberry Pi 3A+に開発環境を整備することにしました。

以前も仮想環境を整備しましたが今回はpyenvとプラグインであるpyenv-virtualenvを使用することにしました。

ハード

Raspberry Pi 3 Model A Plus Rev 1.0

OS

$ cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

pyenvインストール

gitインストール

githubから取得するために必要でした。

$ sudo apt install git

pyenvインストール

$ sudo curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

~/.bashrcの修正

export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - bash)"

eval "$(pyenv virtualenv-init -)"

.bashrcをリロードしてpyenvのバージョン確認

$ source ~/.bashrc
$ pyenv -v
pyenv 2.5.4

python3.13.2インストール

必要なパッケージインストール

$ sudo apt install wget build-essential libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev -y
sudo apt install lzma-dev liblzma-dev

pyenvを使用してpythonインストール

$pyenv install 3.13.2
Downloading Python-3.13.2.tar.xz...
-> https://www.python.org/ftp/python/3.13.2/Python-3.13.2.tar.xz
Installing Python-3.13.2...
Installed Python-3.13.2 to /home/hoge/.pyenv/versions/3.13.2

$ yenv versions
* system (set by /home/hoge/.pyenv/version)
  3.13.2

pipコマンドについて

python3.13.2をインストールしたためか最初からかは不明ですがOSに含まれていたpython3.11.2の状態ではpipコマンドが使用できませんでした。

$ pip -V
pyenv: pip: command not found

The `pip' command exists in these Python versions:
  3.13.2

Note: See 'pyenv help global' for tips on allowing both
      python2 and python3 to be found.

試しにshell上のpythonを3.13.2に切り替えた状態であればpipコマンドも使用可能でした。

$ pyenv shell 3.13.2
$ pip -V
pip 24.3.1 from /home/hoge/.pyenv/versions/3.13.2/lib/python3.13/site-packages/pip (python 3.13)

pyenv-virtualenvを使用した仮想環境の作成

仮想環境を作成してアプリの開発フォルダとの紐付け

仮想環境(python実行モジュール)作成

インストールしたpython3.13.2をベースにアプリ開発用のpython3.13.2実行モジュールを複製

$ pyenv virtualenv 3.13.2 <仮想環境名>
$ pyenv versions
* system (set by /home/hoge/.pyenv/version)
  3.13.2
  3.13.2/envs/<仮想環境名>
  3.13.2.env1 --> /home/hoge/.pyenv/versions/3.13.2/envs/<仮想環境名>

アプリ開発用のフォルダ(project1)に開発環境を紐付け

アプリ開発用フォルダ内では複製したpythonの実行モジュールを使用する様に紐付け(.python-versionが作成される)

$ mkdir src/project1
$ cd project1/
$ pyenv local <仮想環境名>
(<仮想環境名>) hoge:~/src/project1 $ python --version
Python 3.13.2

Discussion

ログインするとコメントできます