pyATS の GUI である XPRESSO をインストールする
XPRESSO はネットワークテストの自動化ツールである pyATS にブラウザからアクセス可能な UI を提供します。 今回は XPRESSO のインストール手順をメモしておきます。 尚、タイムゾーンの指定など、設定に関しては省略しており、インストール手順までだけをメモしています。
XPRESSO はネットワークテストの自動化ツールである pyATS にブラウザからアクセス可能な UI を提供します。 今回は XPRESSO のインストール手順をメモしておきます。 尚、タイムゾーンの指定など、設定に関しては省略しており、インストール手順までだけをメモしています。
Python から Excel を操作するライブラリは幾つか存在しますが、特に openpyxl が有名のように思います。 但し、現状の openpyxls には「複数範囲に対して、一括で外枠を定義する」ようなメソッドが無いようなので、サンプル実装をメモしておきます。 今回は以下を利用しました。
尚、罫線に限らない「書式全般の操作」については openpyxl 公式ドキュメントの Working with styles で言及されています。
CiscoConfParse で Cisco IOS のコンフィグを解析し、IP アドレスなどの情報を抽出するサンプルをメモしておきます。 CiscoConfParse は 1.7.24 を使いました。
Python のパッケージ管理ツールは幾つかあります。 Armin Ronacher さんが開発した rye が使いやすかったのでインストールや基本的な利用手順をメモしておきます。 Armin Ronacher さんは rye の他に flask や jinja、click 等を開発されているそうです。 また、rye が初めて公開されたのは 2023 年 5 月だそうです。 今回は macOS 13.4.1 で検証しました。
George Shuklin さんが Wildcard masks operations in Python という記事で「Python でワイルドカードを操作する方法」をまとめてくださっています。 ワイルドカードが関連しないケースも含め、「プリフィックス長」「ネットマスク」「ワイルドカード」を相互変換する Python サンプルコードをメモしておきます。
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
ディレクトリ配下に保存する 必要があります。