らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

Python

Rocky Linux 8.3 へ Python3 をインストールする

Rocky Linux 8.4 へ Python3 系をインストールする手順をメモしておきます。 今回は Python 3.9.2 をインストールしました。

viptela モジュールを使い CLI から vManage を操作する

pip の viptela モジュールを使うと vManage へのアクセスを SDK や CLI、Ansible Module からアクセスすることが出来ます。 もちろん REST API を直接呼び出しても問題ありませんが、テンプレートの簡単な操作などは (いちいちコードを書くより) viptela モ…

netmiko で Cisco IOS へログインするサンプル

netmiko を使って Cisco IOS デバイスへログインするサンプルをメモしておきます。 TELNET / SSH アクセスする対象には CML2 上の IOSv 15.9(3)M3 を利用しました。

Cisco SD-WAN 環境へアクセスする Python3 スクリプトサンプル

Python スクリプトで Cisco SD-WAN へアクセスするサンプルをメモしておきます。 今回は Ubuntu 21.04 + Python 3.9.5 環境を利用しました。

Ubuntu 21.04 へ Python 3.10 をインストールする

私の Ubuntu 21.04 環境には Python 3.9.5 がインストールされていました。 これを apt で Python 3.10 系へ差し替える手順をメモしておきます。 尚、今回は Python 3.9 と 3.10 を併存することとします。

googletrans でエラーが出た場合は PRE-RELEASE で回避可能

以前に Python で Google API Key を使わずに Google 翻訳を利用する というメモを書きました。 しかし、現時点で googletrans の安定版である 3.0.0 では AttributeError: 'NoneType' object has no attribute 'group' エラーになってしまいます。 これは G…

Python から Cisco Webex へメッセージを送信する

Python から Cisco Webex へメッセージを送信する方法をメモしておきます。 ライブラリは webexteamssdk を利用します。

scapy で CoS や ToS 付きパケットを送信するサンプル

以前に Python3 で scapy を用いてパケットを送信するサンプルスクリプト というメモを書きました。 このスクリプトを拡張し、CoS や ToS (DSCP) 値を付与出来るようにしたサンプルスクリプトをメモしておきます。 テストは Ubuntu 21.04 上の Python 3.9.5 …

Python3 で scapy を用いてパケットを送信するサンプルスクリプト

Python3 で scapy を用いてパケットを送信するサンプルをメモしておきます。

Python3 で連続したアルファベットを出力するサンプルスクリプト

Python3 で「連続したアルファベットを出力するサンプルスクリプト」をメモしておきます。

Ubuntu 20.10 で scapy の「No such file or directory: b'liblibc.a'」を解消する

Ubuntu 20.10 で scapy を利用とすると、以下のエラーが出ました。 # python sample.py Traceback (most recent call last): ・ ・ ・ FileNotFoundError: [Errno 2] No such file or directory: b'liblibc.a' これは以下のように実行することで回避出来まし…

Ubuntu 20.10 で固定アドレスを設定する簡易スクリプト

Ubuntu 20.10 用に、簡単な固定アドレス設定スクリプトを作成したのでメモしておきます。 作り込みの要素は多々あると思います。

Ubuntu 20.10 に pyenv で Python 3.9.1 をインストールする

以前に CentOS7 に pyenv で Python 3.7.x 系をインストールする というメモを書きました。 今回は Ubuntu 20.10 に pyenv で Python 3.9.1 をインストールする手順をメモしておきます。

Cisco ACI のイベントをリアルタイムで検知する Python サンプルスクリプト

以前に Cisco ACI のイベントをリアルタイムで検知する Node.js サンプルスクリプト というメモを書きました。 このメモの Python バージョンを作ったので、改めてメモしておきます。

VIRL 2 Client Library で CML を Python から操作する

VIRL 2 Client Library を使うと Python から CML を操作することが出来ます。 簡単な Python スクリプトを書いて CML 上にラボを作成する手順をメモしておきます。

Python の FastAPI Web アプリで pydantic を使わずに POST メソッドを処理する

Python で FastAPI を使ったアプリケーションを Web アプリケーションを作成する際、POST メソッドで渡されるリクエストの処理は公式サイトの Request Body 説明ページ によると pydantic を使ったクラスで処理するサンプルが掲載されています。 しかし、例…

Python で「ハイフンを含んだデータ名」の JSON を pydantic で受け取る場合の処理

Python で「JSON でデータを受け取る」ようなケースを考えた場合、データを pydantic でクラス化するケースがあると思います。 例えば FastAPI で POST された JSON を受け取る Web アプリケーションを開発する場合などです。 こういった場合、「JSON 内のデ…

AWS API Gateway + Lambda + mangum + FastAPI な Python アプリケーションに POST された JSON を処理する

以前に mangum + FastAPI で ASGI な Python アプリケーションを AWS Lambda + API Gateway 上で動かすというメモを書きました。 mangum と mangum-cli を使うと FastAPI を使った Web アプリケーションを AWS の Lambda と API Gateway を使って簡単に公開…

pyenv 自身をバージョンアップする

pyenv 自身をアップデートしたい場合、以下のように pyenv のインストールディレクトリで git pull するだけで可能です。 cd ${PYENV_ROOT} git pull プラグインを利用したい場合は pyenv-update を ${PYENV_ROOT}/plugins/ 配下にコピーします。 git clone …

AWS Lambda における S3 Put イベントのサンプル

先日、AWS Lambda で CloudWatch Event からトリガーした場合の event サンプルというメモを書きました。 Lambda のテスト用イベントとして予め用意されている Amazon S3 Put の内容を自分用にメモしておきます。

指定された URL の英単語数を数える

「海外メーカー製品は、ドキュメントを英語で読むのが大変」という会話を耳にしたので、実際に「海外メーカー = シスコのドキュメントの英単語数」を計測してみました。 「英語の勉強をしてみよう」と思い立つのですが、単語を覚えるにしても「とりあえず人…

Python で XX 時から YY 時まで ZZ 分間隔で表示する

Python では時間の計算を行う際、timedelta を利用することが出来ます。 timedelta を使うと、例えば「XX 時から YY 時まで ZZ 分間隔で表示する」といったことも簡単に実現出来ます。

Python で営業日を取得出来るライブラリ「jpbizday」を公開

日本の祝日情報を取得する Python ライブラリは幾つかありますが、動作は以下に大別出来ると思います。 オンラインで動作するもの (「Google カレンダー」や「公共機関が出しているカレンダー」からネットワーク経由で情報取得するもの) オフラインで動作す…

Twitter API の利用申請を行い、tweepy を使った Python アプリケーションを作る

Twitter API を利用する為には Twitter アカウントとは別に、API の利用申請を行う必要があるそうです。 Twitter API の利用申請を行ったので、申請方法をメモしておきます。 また、申請が完了したら Twitter API を利用した Python アプリケーションを作っ…

isort で Python の import 順序を PEP8 準拠に修正する

Python で import するライブラリの順序は PEP8 で決められています。 import文 は次の順番でグループ化すべきです: 標準ライブラリ サードパーティに関連するもの ローカルな アプリケーション/ライブラリ に特有のもの isort を使うと Python で import す…

venv で Python 仮想環境を作成する

PEP 405 -- Python Virtual Environments に Python の仮想環境について書かれています。 Python 3.3 からは venv が標準ツールとなり (但し、推奨は pyvenv)、Python 3.5 からは venv が推奨ツールになりました。 venv の基本的な使い方をメモしておきます。

mangum + FastAPI で ASGI な Python アプリケーションを AWS Lambda + API Gateway 上で動かす

mangum を使うと FastAPI や responder といった ASGI アプリケーションを AWS Lambda + API Gateway 上へ簡単にデプロイすることが出来ます。 今回は FastAPI で書いた ASGI アプリケーションを mangum を使って AWS 上でデプロイする手順をメモしておきま…

AWS Lambda で CloudWatch Event からトリガーした場合の event サンプル

AWS Lambda を cron 式で指定時間にトリガーする場合、トリガーには Cloud Watch Event を指定します。 この場合、Lambda のイベントハンドラへ渡される event (JSON オブジェクト) のサンプルは Event Patterns in CloudWatch Events に掲載されています。 …

python-lambda-local と lambda-uploader を使ってローカル環境で Lambda 開発を行う

AWS の Lambda で開発を行う際、Web 管理コンソール上で開発 / デバッグするのは大変です。 python-lambda-local を使うとローカル環境で Lambda を実行出来、更に lambda-uploader を使うとローカル環境から簡単に Lambda へ関数をアップロードすることが出…

PySnooper を使って Python スクリプトをデバッグする

PySnooper を使うと print() や pdb を使わずにデバッグを行うことが出来ます。 PySnooper のページには PySnooper is a poor man's debugger. と書かれていました。 PySnooper の使い方をメモしておきます。 尚、ソースコードは cool-RR / PySnooper にあり…