CLOVER🍀

That was when it all began.

Python

Fakerでフェイクデータを作成する

これは、なにをしたくて書いたもの? Qdrantのドキュメントを見ていて、Fakerというフェイクデータを生成するライブラリーがあることを知ったので簡単に試しておきます。 Faker FakerのWebサイト、GitHubリポジトリーはこちら。 Welcome to Faker’s document…

Nuitkaを使って、Pythonアプリケーションから単一の実行可能ファイルを作成する

これは、なにをしたくて書いたもの? Pythonアプリケーションから実行可能バイナリを生成することができるものとしては、PyInstallerが有名です。 PyInstaller Manual — PyInstaller 6.3.0 documentation GitHub - pyinstaller/pyinstaller: Freeze (package…

jstatライクなコマンド(スクリプト)をjcmdのPerfCounter.printの結果から作ってみる

これは、なにをしたくて書いたもの? Javaアプリケーションの状態を簡単に見る時に、自分が使うツールのひとつにjstatがあります。 jstatコマンド このjstatコマンドですが、jcmdに直接の代替がなく、いつもjstatはjstatのままだったのですが。 jcmdのPerfCo…

pipのキャッシュの保存ディレクトリはどこ?

時々わからなくなるので、メモということで。それなりにサイズも大きくなりますしね。 pipのドキュメントとしては、こちらを見ます。 Caching - pip documentation v24.1.dev0 pipのキャッシュが保存されるディレクトリは、以下に記載されています。 Caching…

ASGIってなんだ?

これは、なにをしたくて書いたもの? 前のエントリーでPythonのWeb APIフレームワーク、FastAPIを試してみました。 PythonのWeb APIフレームワーク、FastAPIを試す - CLOVER この時、一緒にASGIサーバーというものの一種でUvicornというものを使いました。 A…

PythonのWeb APIフレームワーク、FastAPIを試す

これは、なにをしたくて書いたもの? とあるPythonを扱うチュートリアルを見ているのですが、サンプルとしてFastAPIが使われるようなので先に独立して触っておこうかなと 思いまして。 なかなか人気もありそうですし。 FastAPI FastAPIのWebサイトはこちら。…

Ubuntu Linux 22.04 LTSで、"python"コマンドがないと言われたら

これは、なにをしたくて書いたもの? Ubuntu Linux 20.04 LTSからUbuntu Linux 22.04 LTSへ環境を移していて、pythonコマンドの扱いにちょっと困ったのでメモ。 環境 今回の環境はこちら。Ubuntu Linux 22.04 LTSです。 $ lsb_release -a No LSB modules are…

複数の宛先に対する簡単なTCPプロキシサーバーをsocat+Pythonで書く

これは、なにをしたくて書いたもの? 時々、TCPでの通信をローカルポートから別の宛先に転送したくなることがあります。いわゆるプロキシです。 個人的に、こういう時にはsocatをよく使っているのですが。 socatでTCPプロキシサーバーを立てる - CLOVER 転送…

Pythonでスレッドのスタックトレースを出力したい

これは、なにをしたくて書いたもの? Pythonで、動作しているスレッドのスタックトレースを出力する方法は?ということで。 環境 今回の環境は、こちら。 $ python3 -V Python 3.8.10 使う標準ライブラリ 今回の目的は、このあたりを使えば良さそうです。 tr…

Pythonのimportがよくわからなかったので、調べてみる

これは、なにをしたくて書いたもの? Pythonのプログラムを読み書きしていて、importがよくわからなかったので、ちゃんと見てみることにしました。 importとモジュールとパッケージ import自体については、こちらのページを参照。 5. インポートシステム — P…

pipをオフラインで使いたい

これは、なにをしたくて書いたもの? Pythonのモジュールインストールにはpipを使うことが多いと思いますが、pipをオフライン環境で使う方法はないかな?と。 要するに、どこかでダウンロードしたパッケージを、オフラインの別の環境で使いたい、みたいな話…

インストールされているPythonのコンパイルオプションを知りたい(ついでにインストールもしてみる)

これは、なにをしたくて書いたもの? Pythonは、Linux OSであれば最初からインストールされていたり、比較的新しいバージョンもインストールできたりは するのですが。 最新かというとそうでもないことが多く、それでも新しいバージョンを使いたい場合はDock…

Azure Storageエミュレーター、Azuriteを試す

これは、なにをしたくて書いたもの? Azure Storageを、ローカルで動かすためのエミュレーターがあるようです。 開発とテストに Azure ストレージ エミュレーターを使用する (非推奨) | Microsoft Docs ですが、こちらはあまり開発されていないうえに、Windo…

Emacsにlsp-mode+Python Language Serverをインストールする

これは、なにをしたくて書いたもの? EmacsでもLSP(Language Server Protocol)を使えるようなので、ちょっと導入してみようかなと。 EmacsでLSPを使う EmacsでLSPを使うには、以下の2つのパッケージが有名みたいです。 lsp-mode LSP Mode - Language Serve…

PythonのPrometheus Clientを試してみる

これは、なにをしたくて書いたもの? Pythonで、Prometheusのクライアントライブラリを試してみようかなということで。 Prometheus Python Client 文字通り、PrometheusのPython向けクライアントライブラリです。 GitHub - prometheus/client_python: Promet…

Tweepyを使って、PythonからTwitterにアクセスする

これは、なにをしたくて書いたもの? データソースとしてTwitterはけっこう使えるので、Pythonでも扱えるようにしたいな、ということで。 PythonでのTwitterクライアントを、ちょっと探して試してみることにしました。 PythonでのTwitterクライアント ちょっ…

Flaskで、REST APIっぽく遊ぶ

これは、なにをしたくて書いたもの? 以前に、Flask RESTfulを使ってみたのですが、JSONをやり取りするのに素のFlaskでもそんなに困らないのでは?と思いまして。 Flask-RESTful — Flask-RESTful 0.3.8 documentation Flask RESTfulを試す - CLOVER って、前…

PythonでRocksDBを使う

これは、なにをしたくて書いたもの? ふと、RocksDBのPythonバインディングを使ってみようかなと思いまして。 python-rocksdb RocksDB自体はC++で作られていますが、pytyon-rocksdbを使うことでPythonからも利用することができます。 Welcome to python-rock…

Pythonのインタラクティブシェル起動時に、スクリプトを読み込む

Pythonのインタラクティブシェルで、スクリプトで定義した関数などを読み込みたい、という場合にどうしたらいいのかな? ということで。 使ったPythonのバージョン。 $ python3 -V Python 3.6.9 ヘルプを見てみます。 $ python3 -h どうやら、「-i」オプショ…

SQLiteをPythonから使う

これは、なにをしたくて書いたもの? ちょっとした用途でお手軽にデータベースを使いたいといった文脈の時に、JavaだとH2 Databaseあたりが挙がりますが、 そういえばSQLiteを使ったことないよなと思いまして。 1度、ちゃんと見てみようかなと思って今回使っ…

PyMongoを使って、PythonからMongoDBにアクセスしてみる

これは、なにをしたくて書いたもの? MongoDBの練習がてらに、PythonからMongoDBにアクセスするプログラムを書いてみようかなと。 MongoDBのPythonドライバー MongoDBのPythonドライバーは、MongoDBのサイトを見るとPyMongoとMotorがあるようです。 MongoDB …

pytestを使って、Pythonのテストコードを書く

これは、なにをしたくて書いたもの? Pythonでテストコードを書く時には、pytestを使うのが良いという話を聞きまして。1度、自分でも押さえておこうかな、と。 https://docs.pytest.org/en/latest/ 以前、unittestで記載した内容のpytest版です。 unittestラ…

Pythonでの、文字列書式化の方法をメモする

使おうと思った時に忘れているので、メモとして。 Python 3.6以降には、3つの文字列書式化を実現する方法があります。 7. 入力と出力 — Python 3.6.10 ドキュメント フォーマット済み文字列リテラル(f-string) str.format printf 形式の文字列書式化 f-str…

ElasticsearchにCSVファイルの内容をロードする(CSVモジュール & Pandas)

これは、なにをしたくて書いたもの? Elasticsearchに、CSVファイルで用意されたデータをロードする、簡単なスクリプトを書いてみようかなぁと。 こういうのは、バルクローダー的なものでやったり、なにかツールを使ったりすることが多いように思いますが、…

unittestライブラリで、Pythonのテストコードを書いて実行する

これは、なにをしたくて書いたもの? Pythonを勉強するにあたって、テストコードまわりについて少し押さえておいた方がいいかなぁと思いまして。 Pythonには、いくつかテストをサポートするライブラリ、ツールがあるようです。 コードのテスト — The Hitchhi…

Jupyter NotebookをUbuntu Linux 18.04 LTSに、Extension入りでインストールする

これは、なにをしたくて書いたもの? ちょっと、Jupyter Notebookをインストールしてみようかなと。 Jupyter Notebook Jupyter Notebookは、Pythonのエディタと実行環境をまとめたツールで、プログラムや文章を書いたり、実行結果をまとめたりできます。 Pro…

Flask RESTfulを試す

これは、なにをしたくて書いたもの? Pythonで、簡単にREST APIを作れるフレームワークを知りたいなと思いまして。 PythonでのWebフレームワークといえば、DjangoとFlaskが有名みたいですが、Flask RESTfulが入りやすそうだったので、こちらを 試してみるこ…

PythonのHTTPServer/BaseHTTPRequestHandlerを使って、簡単なHTTPサーバーを書く

これは、なにをしたくて書いたもの? Pythonにはhttp.serverというライブラリがあり、簡単にHTTPサーバー(Webサーバー)を起動することができます。 21.22. http.server --- HTTP サーバ — Python 3.6.9 ドキュメント こんな感じで起動して、簡単にカレント…

PythonのTCPServer/HTTPServerをマルチスレッドで使う

これは、なにをしたくて書いたもの? Pythonには、TCPでサーバーを書けるTCPServer、HTTPでサーバーを書けるHTTPServerがあるのですが(そのまま)、これらが シングルスレッドで動作しているので、マルチスレッドにするには?ということで調べてみました。 …

PythonでEcho Server/Clientを書いてみる

これは、なにをしたくて書いたもの? ちょっとしたPythonの勉強がてらに、TCPのEcho Server/Clientを書いてみようと。 Pythonでの、ネットワークプログラミングの基礎を覚えてみる感じで。 お題 文字通り、PythonでTCPでEcho Server/Clientを書くわけです…