Python で引数を処理する argparse の基本的な使い方
Python で CLI ツールを作成する際、引数の処理には argparse が便利です。 argparse の基本的な使い方を幾つかメモしておきます。
Python で CLI ツールを作成する際、引数の処理には argparse が便利です。 argparse の基本的な使い方を幾つかメモしておきます。
Python スクリプトを実行する為、以下のように /opt/sample ディレクトリ配下に .venv という venv 環境をしたとします。
1 2 | |
この環境に対して venv 環境を意識した Python スクリプトを実行するには (システム全体の Python では無く) 以下のように venv 環境内の Python を指定します。 下記の例では /opt/sample/.venv/bin/python3 のように venv 環境内の Python を指定しています。
1 | |
Python で作成したスクリプトを Windows 環境に配布したい場合、pyinstaller で .exe 化してしまう、という方法があります。 pyinstaller 実行時のオプション次第でもあるのですが、「ランタイムや関連ライブラリを全て .exe に同梱してしまい、配布先環境に Python 本体やライブラリが無くても動作させる」ということも可能です。
予め、pyinstaller をインストールしておきます。
1 | |
後は必要に応じて、以下いずれかの実行コマンド (等) を実行するだけです。
| 関連ファイルを含める? | アイコンを指定する? | 実行コマンド |
|---|---|---|
| X | X | pyinstaller sample.py |
| ○ | X | pyinstaller sample.py --onefile |
| ○ | ○ | pyinstaller sample.py --onefile --ico=favicon.ico |
これで dist ディレクトリ配下に .exe ファイルが生成されます。
Python-Markdown を使うと Python のソースコー上で手軽に文字列を Markdown として扱うことが出来ます。
2022/07/14 にリリースされた Streamlit の Version 1.11.0 から、簡単にマルチページアプリケーションを作れる機能がサポートされました。 詳しくは Multipage apps や公式ブログの Introducing multipage apps! に書かれています。 マルチページにするだけであればコーディングする必要は無く、以下のようにファイルを配置します。 但し、各ページは「1 ページ = 1 ファイル」とし、必ず pages ディレクトリ配下に保存する 必要があります。
Streamlit の st.snow は、公式ドキュメントで下記のように記載されています。
Draw celebratory snowfall.
以下のサンプルコードを用意します。
フロントエンドは Nginx を使って Proxy し、バックエンドで Streamlit を動作させる場合、例えば Nginx 側は /etc/nginx/conf.d/default.conf を以下のように設定することが出来ます。 location /app 内で proxy_pass http://127.0.0.1:8501; を指定することにより、http://ADDRESS/app/ へのリクエストは Nginx で Proxy され、ローカルホストの 8501/TCP で動作している Streamlit アプリケーションへ転送されます。
現状の Streamlit に用意されている各エレメントは標準機能だけでは「フォントのカスタマイズ」などがあまり出来ず、「Markdown で CSS を挿入する」といった工夫が必要です。 Change font size and font color で議論されていますが、「ピンポイントで特定箇所のフォントだけをカスタマイズして表示したい」という場合は Markdown で該当箇所のみ、スタイルを適用します。
2022/12/14 にリリースされた Streamlit の Version 1.16.0 から st.markdown や st.header でフォントの色指定が可能になったそうです。
Colored text, using the syntax :color[text to be colored], where color needs to be replaced with any of the following supported colors: blue, green, orange, red, violet.
指定可能な色は現状、以下の 5 種類のみのようです。
Cisco IOS XE 隠しコマンドを楽しむ を読んで GuestShell をいじっていたのですが、最近の IOS-XE に同梱されている python3 と cli モジュールでは「?」を含むコマンドを実行するとエラーになってしまいました… 解決していないのですが、実行したスクリプトとエラー内容をメモしておきます。 環境は Catalyst 8000V 17.09.01a を利用しました。
尚、GuestShell の有効化については以前に IOS-XE で GuestShell を有効化し、外部ネットワークと通信する というメモを書いています。