先日作成したRaspberry Pi Zero W用Raspberry Pi OS(Pythonバージョン3.9)に、Python 3.5環境用whlファイルをインストールするため、Python 3.5を取り込んだけれどもpipが使えなくて古いRaspberry Pi OSにした話です。
使用環境:
- Raspberry Pi Zero W
- Raspberry Pi OS 11(Bullseye) → 9(Stretch)に変更
問題点:
- pip install以外のwhlファイルインストール方法が分からない
- Raspberry Pi OS 11上にて、python3.5を使用て「-m pip install hoge」を実行すると「/usr/local/bin.python3.5: No module named pip」のエラーになる
トータル10時間分くらい試行錯誤しましたが、私の力量では解決できませんでした。
解決方法:
- デフォルトでPython3.5をサポートしているRaspberry Pi OS 9(Stretch)に置き換えた
敗北感がすごいですが、自分が扱っているコードがOSのバージョンではなく、Pythonのバージョンに大きく依存していたので、早々にギブアップしました。
Raspberry Pi OS 11上で、古いPythonバージョンを使用したpipを使う必要がある方の力にはなれません。スミマセン。
手順:
- 古いバージョンのRaspberry Pi OSを入手
- Raspberry Pi Imagerでイメージメディアを作成
- 注意事項
1. 古いバージョンのRaspberry Pi OSを入手
使用したいRasiberry Pi OSのZIPを下記サイトからダウンロードします。
https://downloads.raspberrypi.org/raspbian/images/
フォルダがリリース日毎に分かれていて探すのが大変な場合は、Rasiberry Pi OSのWikipedia( https://en.wikipedia.org/wiki/Raspberry_Pi_OS )に記載してあるリリース日とバージョンを見ながらおおよそのあたりをつけて探すと少し楽です。
2. Rasiberry Pi Imagerでイメージメディアを作成
① ダウンロードしてきたZIPファイルを解凍
② Raspberry Pi Imagerを起動し、OS選択時に「Use custom」を選択(リストの一番下にあるのでスクロールしてください)
④ [Raspberry Piデバイス]と[ストレージ]も選択し[次へ]をクリックしメディアを作成
3. 注意事項
使用するRaspberry Pi OSバージョンによっては、ImagerでWifiやSSHの事前設定はできないようです。(私が使用したバージョンはできませんでした。)
事前設定ができない場合は作成したイメージを使用して起動した後、ユーザアカウントのパスワード、Wifi、SSHを設定します。
※ SSHは、画面左上のラズパイマーク→[Raspberry Pi Configuration]を選択後、[Interfaces]タブをクリックすると有効化できます。
古いRaspberry Pi OSのイメージメディアを作成する手順は以上です。
ここからはRaspberry Pi OSのPythonとPipで苦労した時のメモです。
最終的には上記の通り「古いOSバージョンを使う」で解決したため、本当にただの苦労話です。
やりたかったこと:
Raspberry Pi Zero WのRaspberry Pi OS 11(Bullseye)で、Python3.5用.whlをインストール
やったこと:
- Python3.5のインストール → 成功
- python3.5 -m pip install xxxxxxxx.whl → エラー /usr/local/bin.python3.5: No module named pip
- alternativesを使用してpython3.5をpythonに設定(=ソフトリンク)して pip install xxxxxxxxx.whl → エラー(No module named pip)
- https://bootstrap.pypa.io/get-pip.pyを見る → minimum python versionが3.7であることを知る
- minimum python versionにひっかからないget-pip.pyを持ってくる
- pipのインストールを試みる sudo python3.5 get-pip.py → ERROR: No matching distribution found for pip<21.0
- もう私で対応できる範囲ではないことを悟る
- whlをインストールするだけならば、古いRaspberry Pi OS使えばいいかとあきらめる
これはPython経験が浅すぎることによる挫折なのかもしれません。。。
いつか対応方法が分かるといいなと思います。