ラズパイ4を初期設定して、Python開発環境を構築する作業メモ
ラズパイ4をみつける
クローゼットに眠るラズパイ4を見つける。
モチベーションUPのために、やりたいことを書き出しておく
- aiboのAPIを使ったアプリ用。
- Switchbotとaiboをつなげて、「aibo、寝るよー」→ aibo「ワン」+電気消える
- aibo を認識したら、写真撮ってLINEに送る。
Raspberry Pi Imager を使って、準備する。
公式サイトからRaspberry Pi Imagerをダウンロードして、Macにインストールする
SDカードのフォーマットを行う
Raspberry Pi Imagerを起動して、「CHOOSE OS」をクリックし、「Erase」を選択する。
「CHOOSE SD CARD」から、今回ラズパイに使うSDカードを選択する。
「WRITE」をクリックして、SDカードのフォーマットを行う。
OSを書き込む前にSSHやWifi設定を事前準備する
2021年3月のRaspberry Pi Imagerのアップデートで、
SDカードにOSを書き込む時に、SSHやWifiの設定情報も書き込むことができる便利機能がついた。
cmd
+Shift
+X
で、オプション画面を表示する。
ホスト名の設定、SSHの設定、Wifiの設定、言語設定を行う。
RaspbianをSDカードに書き込む
「CHOOSE OS」から、「Raspbian(other)」>「Raspbian Full」を選択する
「CHOOSE SD CARD」から、今回ラズパイに使うSDカードを選択する。
「WRITE」をクリックして、SDカードに書き込む。
SDカードをラズパイに挿入
書き込みが終わったら、MacからSDカードを抜く。
ラズパイに、キーボード、マウスをUSBでつないで準備。SDカードを挿入する。
ラズパイに電源をつないで、起動する。
動作確認、SSHとVNC接続確認
ラズパイの設定
ラズパイが起動したら、「Menu」>「Preference」>「Rasoberry Pi Configuration」で設定画面を開く。
「Interface」タブで、Camera、SSH、VNCのEnabledを選択して、OKをクリック。
ラズパイの再起動を行う。
ラズパイの右上バーにVCNのロゴが表示されている。
クリックするとVCN ServerのIPアドレスが表示される。メモしておく。
ping打ってみる
MacあるいはWindowsからpingうってみる。
$ ping myraspi.local
SSH接続
Macのターミナル、あるいはWindowsコマンドプロンプトからSSH接続してみる
$ ssh pi@myraspi.local
パスワードが求められるので、ラズパイに設定したパスワードを入力。
接続できた。
VNC接続
Windows に、VNCビューワをダウンロードしてインストールする。
VCNビューワを起動して、ラズパイのVCNサーバIPアドレスを入力してEnter。
ラズパイのユーザー名とパスワードを入力して、「OK」を押す。
接続され、ラズパイの画面が表示される。
ラズパイ最初にやっておく設定
OSのアップデート
$ sudo apt update
$ sudo apt full-upgrade -y
$ sudo apt autoremove -y
$ sudo apt clean
$ sudo reboot
スクリーンショットのアプリをインストール
$ sudo apt install gnome-screenshot
左上メニュー > アクセサリー > Screenshot で、スクリーンショットのウィンドウが現れる。「スクリーンショットの取得」をクリックして取得する。
rootにパスワードを設定する
$ sudo passwd root
ユーザーを新規作成
$ sudo adduser newuser
# newuser に権限を付与
$ sudo usermod -G pi,adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,netdev,input,spi,gpio newuser
# ログインした時に、pi ではなく newuserにする
$ sudo nano /etc/lightdm/lightdm.conf
### autologin-user=pi をコメントアウトする
$ sudo nano /etc/systemd/system/autologin@.service
### --autologin pi を --autologin newuser に変更する
SSHを鍵認証にする
SSHログインの時、毎回パスワードを入れなくてよくなる。
Windows で秘密鍵と公開鍵を作成する
$ mkdir c:\Users\user\.ssh
$ ssh-keygen -t rsa
### -t オプションで、鍵の暗号のアルゴリズムを指定する。rsa, dsa, ecdsa, ed25519 がある
### 保存する場所、パスフレーズの入力が求められる。(入力不要の時はEnter)
鍵のペア id_rsa
(秘密鍵) と id_rsa.pub
(公開鍵)が作成される。
ラズパイ側に.sshディレクトリを作成
$ mkdir ~/.ssh
Windowsのコマンドプロンプトから、公開鍵をラズパイに転送する
$ scp .ssh/id_rsa.pub newuser@192.198.11.19:/home/newuser/.ssh
ラズパイ側で公開鍵を書き込む
# ラズパイにnewuserでログインする
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
### authorized_keysというファイルが作成され、id_rsa.pubの内容がコピーされる
# パーミッションを設定
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
ラズパイからログアウトして、再度ログイン
$ ssh newuser@myraspi.local
これまで求められていたパスワードを入力せずに、ログインできるようになった。
ファイル共有の設定
- WinSCPをインストール
開発用エディタをインストール
VSCodeがラズパイに正式に対応するようになった。
$ sudo apt update
$ sudo apt install -y code
Python 開発環境を構築する
$ sudo apt install -y curl file git vim openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev
### anyenv のインストール
$ git clone https://github.com/anyenv/anyenv ~/.anyenv
### ~/.bashrc に PATHを通す
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(anyenv init -)"' >> ~/.bashrc
### anyenvのインストール
$ git clone https://github.com/riywo/anyenv ~/.anyenv
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bash_profile
$ ~/.anyenv/bin/anyenv init
$ echo 'eval "$(anyenv init -)"' >> ~/.bashrc
$ source ~/.bashrc
$ anyenv -v
$ anyenv install pyenv
$ exec $SHELL -l
### 一度っコマンドプロンプトを閉じて、もう一度開いて、SSH接続する。
### Python3系をインストール
$ pyenv install 3.9.4
$ pyenv global 3.9.4
$ pyenv versions # 確認
$ python --version
3.9.4
$ pip install --upgrade pip setuptools
### Poetryをインストール
$ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
### PATHを通す
$ echo "$HOME/.poetry/bin:$PATH" >> ~/.bashrc
$ source ~/.bashrc
$ poetry self update
### Poetryの設定。仮想環境をディレクトリ内に作るよう設定変更する。
$ poetry config --list
$ poetry config virtualenvs.in-project true
Poetry を使って、プロジェクト作成する
$ mkdir projects
$ cd projects
$ poetry new newproject
# あるいは
$ poetry init
# まず、pip のバージョンを上げる。
$ poetry run pip install -U pip setuptools
poetry new
の場合ディレクトリが作られる。
ディレクトリの中身を自分で作る時は、代わりにinit
でもよい。
newproject
├── pyproject.toml
├── README.rst
├── newproject
│ └── __init__.py
└── tests
├── __init__.py
└── test_newproject.py
パッケージの追加をする
# パッケージの追加
poetry add pandas
poetry add git+https://github.com/xxxxxx/xxxxxx.git
# pyproject.toml にある依存関係全部を一括にインストールする場合は
$ poetry install
Pythonスクリプトを実行する
# `Python script.py` でPythonファイルを実行するところ、Poetryを使って実行する
$ poetry run python script.py
# あるいは、
$ poetry shell # 仮想環境に入って
$ python script.py # 実行
#