Closed7

ラズパイ4を初期設定して、Python開発環境を構築する作業メモ

mamixmamix

ラズパイ4をみつける

クローゼットに眠るラズパイ4を見つける。

モチベーションUPのために、やりたいことを書き出しておく

  • aiboのAPIを使ったアプリ用。
  • Switchbotとaiboをつなげて、「aibo、寝るよー」→ aibo「ワン」+電気消える
  • aibo を認識したら、写真撮ってLINEに送る。
mamixmamix

Raspberry Pi Imager を使って、準備する。

公式サイトからRaspberry Pi Imagerをダウンロードして、Macにインストールする
https://www.raspberrypi.org/software/

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の設定情報も書き込むことができる便利機能がついた。
https://www.raspberrypi.org/blog/raspberry-pi-imager-update-to-v1-6/

cmd+Shift+X で、オプション画面を表示する。
ホスト名の設定、SSHの設定、Wifiの設定、言語設定を行う。

RaspbianをSDカードに書き込む

「CHOOSE OS」から、「Raspbian(other)」>「Raspbian Full」を選択する
「CHOOSE SD CARD」から、今回ラズパイに使うSDカードを選択する。
「WRITE」をクリックして、SDカードに書き込む。

SDカードをラズパイに挿入

書き込みが終わったら、MacからSDカードを抜く。
ラズパイに、キーボード、マウスをUSBでつないで準備。SDカードを挿入する。
ラズパイに電源をつないで、起動する。

mamixmamix

動作確認、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ビューワをダウンロードしてインストールする。
https://www.realvnc.com/en/connect/download/viewer/

VCNビューワを起動して、ラズパイのVCNサーバIPアドレスを入力してEnter。
ラズパイのユーザー名とパスワードを入力して、「OK」を押す。

接続され、ラズパイの画面が表示される。

mamixmamix

ラズパイ最初にやっておく設定

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

これまで求められていたパスワードを入力せずに、ログインできるようになった。


mamixmamix

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
mamixmamix

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 # 実行

# 
このスクラップは2021/05/07にクローズされました