Raspberry pi 5b始動
Raspberry Pi 5を始動させた。稼働中のRaspberry Piはすべて10分ごとにCPU温度を記録している…と思う。今回、Raspberry Pi ηが記録から漏れていたので、今回5Bと同時に記録を開始している。(追記: 何ということでしょう、ζも漏れていた)
cronで定期的にPythonスクリプトを実行してMySQLサーバーに温度の記録を行っている。スクリプトを実行するに伴い不足しているライブラリをインストールする必要があるのだが、次のような警告がでた。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
04:16 rpi@raspberrypi5b-alpha:~/Documents/CPU_temp $python3 -m pip install pymysql error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. |
今回は、以下のようにシステムのPython3にライブラリをインストールしてしまった。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
04:19 rpi@raspberrypi5b-alpha:~/Documents/CPU_temp $sudo apt install python3-pymysql Reading package lists... Done Building dependency tree... Done Reading state information... Done Suggested packages: python-pymysql-doc The following NEW packages will be installed: python3-pymysql 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 42.2 kB of archives. After this operation, 177 kB of additional disk space will be used. Get:1 http://deb.debian.org/debian bookworm/main arm64 python3-pymysql all 1.0.2-2 [42.2 kB] Fetched 42.2 kB in 0s (178 kB/s) Selecting previously unselected package python3-pymysql. (Reading database ... 127342 files and directories currently installed.) Preparing to unpack .../python3-pymysql_1.0.2-2_all.deb ... Unpacking python3-pymysql (1.0.2-2) ... Setting up python3-pymysql (1.0.2-2) ... |
エラーのメッセージ内に以下の様な記述があるので、Pythonの仮想環境で利用するのが好ましいようだ。さて、これまでこの様なエラーは出ていなかった。Raspberry Pi OSのバージョンを確認していないので、新旧の違いなのか、あるいは、今回64bitをインストールしたので、32bitと64bitの違いなのか定かではないが、いずれにしてもUbuntuと同様にPythonの仮想環境を構築する必要がありそうだ。
If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed.
追記: 気になったので、バージョンを確認。
bookwormになってた。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
09:13 rpi@raspberrypi4b-gamma:~ $uname -a Linux raspberrypi4b-gamma 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux 09:13 rpi@raspberrypi4b-gamma:~ $lsb_release -a No LSB modules are available. Distributor ID: Raspbian Description: Raspbian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye 09:14 rpi@raspberrypi5b-alpha:~ $uname -a Linux raspberrypi5b-alpha 6.1.0-rpi7-rpi-2712 #1 SMP PREEMPT Debian 1:6.1.63-1+rpt1 (2023-11-24) aarch64 GNU/Linux 09:15 rpi@raspberrypi5b-alpha:~ $lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 12 (bookworm) Release: 12 Codename: bookworm |
あと、初回起動時にデータベースデーブルがないってエラーが得るので対処する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
04:19 rpi@raspberrypi5b-alpha:~/Documents/CPU_temp $python3 CPU_Temp_sql.py Traceback (most recent call last): File "/home/rpi/Documents/CPU_temp/CPU_Temp_sql.py", line 64, in <module> row_num = cur2.execute("SELECT COUNT(*) FROM environment;").fetchone()[0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ sqlite3.OperationalError: no such table: environment During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/rpi/Documents/CPU_temp/CPU_Temp_sql.py", line 99, in <module> sql = 'INSERT INTO environment VALUES (\'%s\', %s, %s, %s)' % (db_data) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ TypeError: not enough arguments for format string |