LoginSignup
0
0

Raspberry Piでlibcameraとpicamera2を仮想環境でセットアップする

Last updated at Posted at 2024-06-23

picamera2のインストールがうまく行かなっかたけど、環境変数設定してやるとうまく行きました。

前提条件

Raspberry Pi 4B
OS:Bookworm
Python 3.11

手順

1. 仮想環境の作成と有効化

まず、Pythonの仮想環境を作成、有効にする。

mushi.py
bash
python3 -m venv /home/username/myproject/myenv
source /home/username/myproject/myenv/bin/activate

2. 必要な依存関係のインストール

libcamera のビルドに必要な依存関係をインストール。

mushi.py
bash
sudo apt-get update
sudo apt-get install -y libboost-dev libgnutls28-dev openssl libtiff-dev pybind11-dev
sudo apt-get install -y qtbase5-dev libqt5core5a libqt5gui5 libqt5widgets5
sudo apt-get install -y meson cmake
sudo apt-get install -y python3-yaml python3-ply python3-jinja2
sudo apt-get install -y libglib2.0-dev libgstreamer-plugins-base1.0-dev
sudo apt-get install -y libdw-dev libunwind-dev libudev-dev

3. libcamera のソースコードをクローン

次に、libcamera のソースコードをクローン。

mushi.py
bash
git clone https://git.libcamera.org/libcamera/libcamera.git
cd libcamera

4. libcamera のビルドとインストール

meson を使用してビルドディレクトリを設定し、ninja を使用してビルドおよびインストール。

mushi.py
bash
meson setup build
ninja -C build
sudo ninja -C build install

5. 環境変数の設定

libcamera が正しくインストールされたことを確認するために、環境変数 LD_LIBRARY_PATH を設定。

mushi.py
bash
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

6. picamera2 のインストール

仮想環境内で picamera2 をインストール。

mushi.py
bash
pip install picamera2

7. Python スクリプトの実行

仮想環境内で Python スクリプトを実行します。以下のスクリプトを使って、カメラのプレビューを開始。

mushi.py
python
from picamera2 import Picamera2, Preview

picam2 = Picamera2()
picam2.start_preview(Preview.QTGL)
picam2.start()

まとめ

6.以降がうまくいかなかったけど、環境変数設定してやるとインストールできた。
めもでした。

追記

・GitHub Issue #218では、同様の問題が報告されており、libcameraのバージョンに依存することが確認されている。
 https://github.com/raspberrypi/picamera2/issues/218

・Arducamフォーラムでも、libcameraのバージョンを調整することで問題が解決された事例が報告されている。
 https://forum.arducam.com/t/importerror-cannot-import-name-controltype-from-libcamera-unknown-location/3414

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0