🎃

【ポートフォリオ 03】Raspberry Pi にデプロイして動作確認をした結果

に公開

はじめに

以前、以下のCLIコマンドツールを作成しました。

https://zenn.dev/mabo23/articles/2dcf8af0e9cdc2

GitHubにアップした後、Ubuntu Server をインストールした Rasberry Pi4 (以降、ラズパイと表記)と GitHub をSSH連携し、ラズパイ(サーバ)にデプロイしました。

この記事では、その処理結果について簡単にまとめていきます。

検証結果

VS Code上で実装したときと同じコマンドを実行したが、動作せず。

動作しなかった原因

1. .venv ディレクトリがない

ls コマンドでディレクトリを確認したところ、venv ディレクトリだけ存在しないことがわかりました。
新たにプロジェクトのルートでディレクトリを作成しました。

2. python3 -m venv .venv で仮想環境が作れない

python3 -m venv .venv コマンドを実行した結果、以下のメッセージが出力されました。

出力メッセージ
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt install python3.12-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: /home/ubuntu/backend-portfolio/03_markdown_to_HTML_converter/.venv/bin/python3

このメッセージから2つのことが分かりました。

2-1. Python のバージョンに合わせた python3-venv パッケージをインストールする必要があること

Ubuntu や Debian 系では、Python の仮想環境機能(venv モジュール)が別パッケージで管理されており、デフォルトで入っていないことが多いことから、python3-venv パッケージを別途インストールする必要があるようです。

versionの確認
python3 --version

実行結果、Python 3.12.3 を使用しているとわかりました。
そのため、上記のメッセージで「apt install python3.12-venv」と出てきたと推測できます。

また、以下の記事も参考にさせていただきました。
https://noauto-nolife.com/post/ubuntu-2404-python-venv/

2-2. sudo コマンドを一緒に使ってインストールすること

apt install python3.12-venvというコマンドと一緒に sudo も使ってね、というメッセージですので、以下のコマンドを実行することになります。

sudo apt install python3.12-venv

これによって、venvモジュールが使えるようになりました。

ラズパイで環境構築

1. .venv の作成

.venvの作成
python3 -m venv .venv

ディレクトリがあるか確認してみましょう。

ls コマンド実行

焦ること勿れ。.venv として作成していますので、隠しフォルダになっています。
そこで以下のコマンドを実行します。

ls -a コマンド実行

しっかりあることが確認できます。

2. 仮想環境の有効化

(.venv) がコマンドプロンプトに表示され、仮想環境が有効になりました。

3. pip install markdown

ここで、パッケージ管理 pip によって外部ライブラリ markdown をインストールしました。
仮装環境内で、必要なパッケージをインストールしています。

4. python3 file-converter.py markdown inputfile outputfile

実行結果

無事、作成したプログラムが動作することが確認できました。

5. deactivate

コマンドプロンプトから (.venv) の表示がなくなり、仮想環境を抜けて、グローバルなpython環境に戻りました。

再検証結果 : 成功!

まとめ

さぁ、実際の本番環境にプログラムを配置できたので、いざ実行確認。
あれ、できない?なぜだ?
そこから、VS Codeで作成したときの状態との差分を見つけ、一つ一つ謎を紐解いていった結果、無事プログラムが動作することが確認できました。

今回は簡易的なCLIコマンドラインツールを作り、処理もそこまで多くないのでうまくいっただけの可能性もあります。

プログラムの規模に応じて、適したサーバ環境を選択・構築できるよう、まだまだ進化していきたいと思います。

最後までお読みいただき、ありがとうございました。

参考URL

https://docs.python.org/ja/3.13/library/ensurepip.html

https://trends.codecamp.jp/blogs/media/column211

https://noauto-nolife.com/post/ubuntu-2404-python-venv/

https://docs.python.org/ja/3/tutorial/venv.html

Discussion