CLOVER🍀

That was when it all began.

Python

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 ですが、こちらはあまり開発されていないうえに、Windowsでのみ…

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を書くわけです…

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

Pythonで、実行可能なバイナリを作成するにはどうしたらいいのかな?と思って調べてみたのですが、PyInstallerというものを 使えばよさそうです。 PyInstaller Quickstart — PyInstaller bundles Python applications GitHub - pyinstaller/pyinstaller: Fre…

AWS Step Functionsをローカルで動かす

これは、なにをしたくて書いたもの? AWS Step Functionsをちょっと試してみたいのですが、どうやらローカルで動かせるみたいなので、ちょっと試してみようと。 AWS Step Functions とは - AWS Step Functions Step Functions Local (ダウンロード可能バージ…

PythonのAWSクライアントライブラリ、Boto 3の接続情報を設定する

これは、なにをしたくて書いたもの? PythonのAWSクライアントライブラリといえば、Boto 3というものだそうです。 AWS SDK for Python | AWS GitHub - boto/boto3: AWS SDK for Python ドキュメントは、こちら。 Boto 3 Documentation — Boto 3 Docs 1.9.134…

LocalStackを使って、AWS Lambdaを試してみる(Python版)

これは、なにをしたくて書いたもの? AWS Lambdaを動かすのに、以前LocalStackを使ってNode.jsで作成した関数を動かしてみました。 LocalStackを使って、AWS Lambdaを試してみる - CLOVER 今回は、ちょっとPythonで作成してみたいと思います。 お題 お題も前…

Pythonプログラムのメモリの使用状況をトレースする

これは、なにをしたくて書いたもの? ちょっと、Pythonプログラムで使用しているメモリの状況を追ってみようかなと。 Python標準ライブラリにtracemallocというものがあるので、こちらを利用できます。またobjgraphというものを使えば、 オブジェクトの参照…

uWSGIで複数プロセスを使ってアプリケーションを起動した時に、複数のCPUを使えているかどうか確認する

これは、なにをしたくて書いたもの? uWSGIやGunicornなど、WSGIサーバーは起動時に複数プロセスを利用させるように設定できるのですが、それで複数のCPUコアを 使ってくれるのかを試してみようかなと。 今回は、uWSGIを使って試すことにします。 環境 環境…

WSGIアプリケーションとプロセス数、スレッド数の関係を見る

これは、なにをしたくて書いたもの? 先日、WSGIサーバーとして、GunicornやuWSGIを動かしてみました。 uWSGIを試してみる - CLOVER Gunicornを試してみる - CLOVER この時に、これらのサーバーには起動時にプロセス数やスレッド数を与えることができるとわ…

Gunicornを試してみる

これは、なにをしたくて書いたもの? 前に、uWSGIについてエントリを書きました。 uWSGIを試してみる - CLOVER 今回は、同じくWSGIサーバーであるGunicornを試してみたいと思います。 Gunicorn - Python WSGI HTTP Server for UNIX Gunicorn Gunicornは、UNI…

uWSGIを試してみる

これは、なにをしたくて書いたもの? PythonでWebアプリケーションを書くためのインターフェースとして、WSGIというものがあるそうです。 Web Server Gateway Interface - Wikipedia PEP 3333: Python Web Server Gateway Interface v1.0.1 — knzm.readthedo…