由於 Rapberry Pi OS Bookworm 的 Python 是 3.11 版, 某些套件例如 pandas-ta 要求 >=3.12 無法安裝, 因此決定打掉重來, 改燒錄 Trixie 版, 然後重複上周在 Bookworm 上的設定, 參考 :
遠端桌面連線的重點是, Anydesk 與 VNC 必須是 X11 桌面才能連線, 所以安裝完這兩個套件包後, 要用 sudo raspi-config 的 advanced options/interface options 中, 將預設的 Wayland 桌面改成 X11; 然後到 interface options/VNC 啟用 VNC 功能, 這樣才能順利連線, 否則會出現如下錯誤 (以 Anydesk 為例) :
安裝完檢查檔案系統容量還有 48GB :
pi@raspberrypi:~ $ df -h
檔案系統 容量 已用 可用 已用% 掛載點
udev 1.6G 0 1.6G 0% /dev
tmpfs 760M 9.5M 750M 2% /run
/dev/mmcblk0p2 59G 8.1G 48G 15% /
tmpfs 1.9G 488K 1.9G 1% /dev/shm
tmpfs 5.0M 12K 5.0M 1% /run/lock
tmpfs 1.0M 0 1.0M 0% /run/credentials/systemd-journald.service
tmpfs 1.9G 25M 1.9G 2% /tmp
/dev/mmcblk0p1 510M 103M 408M 21% /boot/firmware
tmpfs 380M 84K 380M 1% /run/user/1000
tmpfs 1.0M 0 1.0M 0% /run/credentials/getty@tty1.service
檢查 Python 版本為 v3.13.5 版, 這樣應該夠新的了 :
pi@raspberrypi:~ $ python
Python 3.13.5 (main, Jun 25 2025, 18:55:22) [GCC 14.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
與 Bookworm 不同的是, 每次開啟瀏覽器時會出現 keyring 密碼設定視窗 :
詢問 ChatGPT 原來在 Linux 系統中當某個應用程式 (例如瀏覽器) 想安全地儲存密碼 (例如 Google 登入資訊) 都會詢問是否要建立一個預設密鑰圈 (keyring), 只要把 Keyring 密碼設成樹莓派登入密碼, 這樣每次登入樹莓派時Keyring 就會自動解鎖, 不會再跳 keyring 設定視窗.
(補充) :
有些套件例如 pandas, numpy, pandas-ta, 與 yfinance 等不是純 Python, 而是 C extension/Cython 編譯的套件, 需先用 apt 安裝開發套件與編譯依賴 :
sudo apt install -y python3.13-venv python3.13-dev build-essential libssl-dev zlib1g-dev libncurses5-dev libncursesw5-dev libreadline-dev libffi-dev libsqlite3-dev libbz2-dev wget curl llvm
與在 Bookworm 一樣, 由於 PEP 668 的限制, 已不允許直接在系統的 Python 3 環境 (/usr/lib/python3/) 中安裝套件, 以免使用者用 pip 覆蓋掉用 apt 安裝的 Python 系統套件, 或者出現版本衝突問題, 所以我建立了一個名為 myenv 的虛擬環境來安裝常用 Python 套件 :
pi@raspberrypi:~ $ python -m venv myenv
pi@raspberrypi:~ $ source ~/myenv/bin/activate
(myenv) pi@raspberrypi:~ $
為了避免相依套件複寫, 舊版本覆蓋新版本, 套件安裝順序重新安排如下 :
1. 資料科學基礎套件 :
pip install numpy
pip install pandas
pip install scipy
pip install matplotlib
pip install seaborn
pip install bokeh
pip install plotly
pip install altair
pip install scikit-learn
2. 深度學習框架 :
pip install torch torchvision torchaudio
註 : PyTorch 官方有釋出 ARM64 CPU 版本的 wheel, 可用 pip 直接安裝, 資源要求低, 總共約需 300~400 MB 空間, 可做推論與小模型訓練, 大模型訓練可能會吃光 4GB 記憶體. TensorFlow 官方沒有釋出 ARM64 CPU wheel 版本, 須自行編譯且容易失敗, 僅適合安裝推論用的 tflite-runtime, 這是 TensorFlow Lite 的最小 Python runtime, 輕量幾乎無依賴. (實測無法安裝 tflite-runtime, 它僅支援到 Python 3.10).
3. Web UI :
pip install django
pip install gradio
4. 爬蟲 :
pip install html5lib
pip install selenium
pip install scrapy
5. 量化投資 :
pip install yfinance
pip install twstock
pip install mplfinance
pip install ta
pip install pandas-ta
pip install kbar
pip install backtrader
pip install pyfolio-reloaded
6. Bot 套件 :
pip install line-bot-sdk
pip install python-telegram-bot
7. LLM 套件 :
pip install openai
pip install google-generativeai
8. 開發工具 :
pip install jupyterlab
以上安裝仍出現如下覆蓋現象 :
- 安裝 streamlit 時 : altair 6.0.0 被 5.5.0 覆蓋.
- 安裝 gradio 時 : pillow-12.0.0 被 11.3.0 覆蓋.
- 安裝 kbar 時 : numpy-2.3.5 被 1.26.4 覆蓋 (因 mplfinance 尚未支援 numpy 2).
- 安裝 pyfolio-reloaded 時 : peewee-3.18.3 被 3.17.3 覆蓋.
- 安裝 google-generativeai 時 : protobuf-6.33.1 被 5.29.5 覆蓋.
檢視儲存空間 :
(myenv) pi@raspberrypi:~ $ df -h
檔案系統 容量 已用 可用 已用% 掛載點
udev 1.6G 0 1.6G 0% /dev
tmpfs 760M 9.5M 750M 2% /run
/dev/mmcblk0p2 59G 11G 45G 20% /
tmpfs 1.9G 488K 1.9G 1% /dev/shm
tmpfs 5.0M 12K 5.0M 1% /run/lock
tmpfs 1.0M 0 1.0M 0% /run/credentials/systemd-journald.service
tmpfs 1.9G 14M 1.9G 1% /tmp
/dev/mmcblk0p1 510M 103M 408M 21% /boot/firmware
tmpfs 380M 88K 380M 1% /run/user/1000
tmpfs 1.0M 0 1.0M 0% /run/credentials/getty@tty1.service
可見安裝這些 Python 套件吃掉了大概 3GB 容量.
2025-11-22 補充 :
在一口氣安裝完上面全部套件後, 進入 Python REPL 互動環境匯入部分套件例如 numpy, pandas 等會出現 REPL 崩潰跳出 Python 環境現象, 經過幾天摸索, 逐一安裝各套件測試, 終於抓到兇手了 : streamlit, 它的依賴套件的 C extension 與 Pi 400 Trixie 編譯的 Python 3.13 ABI / CPU 指令集不完全相容, 所以將 streamlit 從套件列表中移除.


沒有留言 :
張貼留言