物聯網開發筆記 (十) Jetson Nano Env 環境設定

CURL

首先安裝 CURL 工具

sudo apt-get update -y && sudo apt-get install curl -y
curl

Poetry

安裝 Poetry 管理

curl -sSL https://install.python-poetry.org | python3 -
poetry

poetry 加入環境變數

sudo vim /etc/profile

# 編輯加入
export PATH="/home/{user_name}/.local/bin:$PATH"

source /etc/profile

這時候不管是下

poetry env use python
poetry install

其中一個,都會出錯,那是因為 Jetson Nano 預設的 python 是2.7版,非常舊,所以將 python 改為你的版本

which python3.10
先查詢 python版本的位置
update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1
將 python 綁定到 python3.10 後面 1 代表優先度,越高越優先

GPIO

GPIO 的安裝稍微複雜,看你是要用 pip 安裝還是跟我一樣用 poetry 安裝在虛擬環境內都可以。

poetry add Jetson.GPIO
安裝 Jetson.GPIO python 庫

設置用戶權限

sudo groupadd -f -r gpio
sudo usermod -a -G gpio your_user_name
建立用戶組,並加入自己

建立規則

將群組加入規則,找到安裝 GPIO 的位置,因為我是安裝在虛擬環境下,所以我就透過以下將包內的 99-gpio.rules 複製出來

sudo cp venv/lib/python3.10/site-packages/Jetson/GPIO/99-gpio.rules /etc/udev/rules.d/
複製群組規則

重新載入

透過以下指令重新載入 udev 執行規則

sudo udevadm control --reload-rules && sudo udevadm trigger

權限不足

或出現 PermissionError: [Errno 13] Permission denied 可以先確定相關使用是否已經分配給 gpio 群組

ls -l /dev/gpiochip0
ls -l /dev/gpiochip1

分配給 gpio 群組

sudo chown root:gpio /dev/gpiochip0
sudo chmod g+rw /dev/gpiochip0
ls -l /dev/gpiochip0

sudo chown root:gpio /dev/gpiochip1
sudo chmod g+rw /dev/gpiochip1
ls -l /dev/gpiochip1

Sudo

用 sudo 執行 python 出現找不到 module,那是因為 sudo python 不認識你 venv 的位置,可以先在終端機輸入:

sudo python
import sys
sys.path

移動到圖片上的位置,並新增一隻檔案

cd /usr/local/lib/python3.10/dist-packages/
sudo vi iOT.pth

寫入虛擬環境中的 package 位置

/home/username/project_path/.venv/lib/python3.10/site-package
venv 內的 package 位置