Skip to content

Python

pyATS の GUI である XPRESSO をインストールする

XPRESSO はネットワークテストの自動化ツールである pyATS にブラウザからアクセス可能な UI を提供します。 今回は XPRESSO のインストール手順をメモしておきます。 尚、タイムゾーンの指定など、設定に関しては省略しており、インストール手順までだけをメモしています。

openpyxl で複数範囲セルの外枠に罫線を設定する

Python から Excel を操作するライブラリは幾つか存在しますが、特に openpyxl が有名のように思います。 但し、現状の openpyxls には「複数範囲に対して、一括で外枠を定義する」ようなメソッドが無いようなので、サンプル実装をメモしておきます。 今回は以下を利用しました。

  • python 3.9.6
  • openpyxl 3.1.2

尚、罫線に限らない「書式全般の操作」については openpyxl 公式ドキュメントの Working with styles で言及されています。

Python のパッケージ管理を rye で行う

Python のパッケージ管理ツールは幾つかあります。 Armin Ronacher さんが開発した rye が使いやすかったのでインストールや基本的な利用手順をメモしておきます。 Armin Ronacher さんは rye の他に flask や jinja、click 等を開発されているそうです。 また、rye が初めて公開されたのは 2023 年 5 月だそうです。 今回は macOS 13.4.1 で検証しました。

Python で「プリフィックス / ネットマスク / ワイルドカード」を相互変換する

George Shuklin さんが Wildcard masks operations in Python という記事で「Python でワイルドカードを操作する方法」をまとめてくださっています。 ワイルドカードが関連しないケースも含め、「プリフィックス長」「ネットマスク」「ワイルドカード」を相互変換する Python サンプルコードをメモしておきます。

cron から venv 環境の Python スクリプトを実行する

Python スクリプトを実行する為、以下のように /opt/sample ディレクトリ配下に .venv という venv 環境をしたとします。

1
2
cd /opt/sample
python3 -m venv .venv

この環境に対して venv 環境を意識した Python スクリプトを実行するには (システム全体の Python では無く) 以下のように venv 環境内の Python を指定します。 下記の例では /opt/sample/.venv/bin/python3 のように venv 環境内の Python を指定しています。

1
0 0 * * * root cd /opt/sample/ && /opt/sample/.venv/bin/python3 script.py

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 ディレクトリ配下に保存する 必要があります。