Skip to content

Python

Python スクリプトを Windows 用の .exe へ変換する

Python で作成したスクリプトを Windows 環境に配布したい場合、pyinstaller で .exe 化してしまう、という方法があります。 pyinstaller 実行時のオプション次第でもあるのですが、「ランタイムや関連ライブラリを全て .exe に同梱してしまい、配布先環境に Python 本体やライブラリが無くても動作させる」ということも可能です。

予め、pyinstaller をインストールしておきます。

1
python3 -m pip install pyinstaller

後は必要に応じて、以下いずれかの実行コマンド (等) を実行するだけです。

関連ファイルを含める? アイコンを指定する? 実行コマンド
X X pyinstaller sample.py
X pyinstaller sample.py --onefile
pyinstaller sample.py --onefile --ico=favicon.ico

これで dist ディレクトリ配下に .exe ファイルが生成されます。

Streamlit 1.11.0 からは簡単にマルチページアプリケーションが作れる

2022/07/14 にリリースされた Streamlit の Version 1.11.0 から、簡単にマルチページアプリケーションを作れる機能がサポートされました。 詳しくは Multipage apps や公式ブログの Introducing multipage apps! に書かれています。 マルチページにするだけであればコーディングする必要は無く、以下のようにファイルを配置します。 但し、各ページは「1 ページ = 1 ファイル」とし、必ず pages ディレクトリ配下に保存する 必要があります。

Nginx で Proxy させる場合の Streamlit 起動方法

フロントエンドは 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 で特定箇所のみ、スタイルを適用する

現状の Streamlit に用意されている各エレメントは標準機能だけでは「フォントのカスタマイズ」などがあまり出来ず、「Markdown で CSS を挿入する」といった工夫が必要です。 Change font size and font color で議論されていますが、「ピンポイントで特定箇所のフォントだけをカスタマイズして表示したい」という場合は Markdown で該当箇所のみ、スタイルを適用します。

Streamlit 1.16.0 からは Markdown で色指定が可能

2022/12/14 にリリースされた Streamlit の Version 1.16.0 から st.markdownst.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 種類のみのようです。

  1. blue
  2. green
  3. orange
  4. red
  5. violet.

IOS-XE 17.09.01a の GuestShell で「?」を含むコマンドが実行出来ず…

Cisco IOS XE 隠しコマンドを楽しむ を読んで GuestShell をいじっていたのですが、最近の IOS-XE に同梱されている python3 と cli モジュールでは「?」を含むコマンドを実行するとエラーになってしまいました… 解決していないのですが、実行したスクリプトとエラー内容をメモしておきます。 環境は Catalyst 8000V 17.09.01a を利用しました。

尚、GuestShell の有効化については以前に IOS-XE で GuestShell を有効化し、外部ネットワークと通信する というメモを書いています。

Streamlit でハンバーガーメニューを表示しない

Streamlit でアプリケーションを作成すると画面の右上にハンバーガーメニューが表示されます。 現時点では「標準機能 (設定) でこのメニューを非表示には出来ない」ようです。 但し、CSS を操作することにより非表示にすることは可能 です。 今回はハンバーガーメニューの非表示設定例をメモしておきます。

pyATS で Blitz を使い、YAML だけで自動化を定義する

pyATS を使うことでネットワーク機器の設定や確認を自動化することが出来ます。 PyATS には Quick Trigger (Blitz) という仕組みがあり、ソースコードを書くこと無く、YAML を書くだけでテストや確認を定義することが出来ます。 今回は Ubuntu 22.04LTS 上で Blitz を実行する手順をメモしておきます。