■Pythonをバージョンアップ
$ python3 --version
Python 3.7.3
現在のバージョンは3.7
https://www.python.org/ftp/python/
3.8 は 3.8.7 が最新
以下を参考に、3.8.7 をインストールしてみる
Raspberry PiでPythonをアップデートする方法 - 知的好奇心
https://intellectual-curiosity.tokyo/2019/12/07/raspberry-pi%E3%81%A7python%E3%82%92%E3%82%A2%E3%83%...
$ wget
https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tgz
$ tar zxvf Python-3.8.7.tgz
$ cd Python-3.8.7
$ ./configure
$ make
$ sudo make install
$ python3 -V
Python 3.7.3
$ python3.8
Python 3.8.7 (default, Feb 6 2021, 16:45:49)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
再起動して3.8を認識させる
$ sudo reboot
以下で確認する
$ python3 -V
Python 3.8.7
■エラー対応メモ
上記でインストールできたが、OpenCVが使えなくなった
ImportError: No module named cv2
OpenCVをインストールしようとすると、以下のエラーになった
ModuleNotFoundError: No module named '_ctypes'
pipでのuWSGIのインストールが"ModuleNotFoundError: No module named '_ctypes'"で失敗する - かつおのお刺身
https://katsuwosashimi.com/archives/371/python-pip-uwsgi-ctypes-not-found/
いったん以下でインストール
$ sudo apt install libffi-dev
Pythonを再度インストール
OpenCVを再度インストール
これでOpenCVが使えるようになった
matplotlib も使えなくなっていた
No module named 'matplotlib'
ModuleNotFoundError: No module named 'matplotlib'が出ても慌てずにmatplotlibをインストールしよう | ITを使っていこう
https://it-ojisan.tokyo/python-no-module-named-matplotlib/
以下でインストール
$ sudo pip3 install matplotlib
動体検知を実行すると以下のエラーになった
Traceback (most recent call last):
File "/var/samba/detection/camera_detection.py", line 93, in <module>
cv2.imshow(window_name, cap_img)
cv2.error: OpenCV(4.5.1) /tmp/pip-install-klk8hgxy/opencv-contrib-python/opencv/modules/highgui/src/window.cpp:651: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvShowImage'
以下に一応対処法があるが、またOpenCVをインストールしなおす必要があるみたい
opencvのインストール - ディープラーニングなるものを始めるブログ
http://tozensou32.blog76.fc2.com/blog-entry-17.html
OpenCVをCondaで簡単にインストール - Qiita
https://qiita.com/yhyhyhjp/items/ea5ad55736e3e9470b6a
いったんは以下のように、Pythonのバージョンを指定して実行すると大丈夫だった
$ python3.7 /var/samba/detection/camera_detection.py