遅まきながらラズパイのOSをbookwormに更新しようと調べていたところ、pipの使い方をこれまでと変えねばいけないようだ。
私は言語系の仮装環境を使うのは好みではなかったのだが、ここはPEP668に従おう。そのために気になることが2つ。
1.はAnsibleのpipモジュールでvirtualenvパラメータを指定すればできた。 しかもvenvなど事前に設定せずとも、下の例だと.venvディレクトリも無い状態でも、Ansibleがよしなに.venv内に環境作ってくれた。えらい。
- name: pip for Python scripts. pip: name: ["polars", "requests"] virtualenv: ~/.venv
ansible.builtin.pip module – Manages Python library dependencies — Ansible Community Documentation
2.はsystemdの.serviceファイルでpythonスクリプト実行指定に仮装Python環境のpython3をパス指定して実行すればよい。こんな感じでExecStartでbinをパス指定で実行すればよい。
[Service] ExecStart=/home/pi/.venv/bin/python3 /home/pi/実行したいスクリプト.py WorkingDirectory=/home/pi User=pi