Python
Pythonでテキストを音声で読み上げる方法のメモです。 Webアプリなどで音声による案内を行いたい場合などに便利です。 gTTS(Google Text-to-Speech)ライブラリというものがあります。 インストールはいつものpipです。利用に際してはgcloud にログインして認…
ChatGPTとかCo-pilotなどでブログラム作成支援を活用しまくっているわけですが、寝ぼけて適当なプロンプトを入れてしまい出てきたコードにしれっと db.drop_all() # テスト後にテスト用のデータベースを削除するため というコードが混在していて、そのまま実…
Pythonで複数のモニター画面のスクリーンショットを一枚の画像として取得する方法のメモです。Pillowという便利なライブラリがあり、それを使います。 以下がサンプルコードです。実行してから5秒後に撮影されます。 コード: from PIL import ImageGrab impo…
構築済みのFlask_Webアプリに後付けでログイン認証を追加する際のメモです。 Flask-Loginという便利なものがあるので、それを使います。 まずはFlask-Loginのインストールから。pip install flask-login とかで。 追加する方法は簡単で、既存のWebページ(例 …
Webアプリで取得したGPSデータを地図にプロットして総距離も表示する方法です。 時系列で地図上にプロットし、ルートを表示するために folium ライブラリを使うのが簡単なようです。 また、距離の計算にはPythonのgeopyライブラリを使うと簡単に計算できます…
大事なファイルを暗号化zipにして保存しておいたけど、肝心の解凍パスワードを失念してしまった。パスワードの長さ、含まれている文字列の一部だけ覚えているといったた場合に効率的に探索して、暗号化zipを解析するというpythonスクリプト。 方針: 失念して…
pytestでWebアプリでjava script動作を含むWebページをテストする際のメモ。 formでpostして結果を取得する場合とは作法が違う。 ポイント: seleniumが必要になる。「pip install selenium pytest 」でインストール。 ChromeDriverとかも必要。パスは「which…
Flaskアプリ側に用意したAPIに Java scriptのfetchでうまくpostできないバグに遭遇して、CORS(Cross-Origin Resource Sharing)というのが原因のようで、以下のような簡単な方法で解決した。 方法: 以下のようにflask_corsを有効にするだけ。もちろん事前に…
JavaScriptのGeolocation APIとPython_Flaskで位置情報を取得するWebアプリを作ってみました。 スマホでGPSを利用したアプリを作りたくなり、そのための手始めとして単純に位置情報だけを取得して地図を表示するところまでです。 ネイティブアプリではなくWe…
何かの記事で見つけた、軽量LLMなCraw4AIとやらを、Virtual Box 上のUbuntu Serverにインストールして実行してみました。 GPUないと動かないかなーとか、メモリがすごく必要になるかなーとか思っていたのですが、 CPUだけの以下のような環境で動きました。 …
日々進化しまくっているLLM界隈。Crew4AI という便利なものがある。 ↓参考記事 ️ Crawl4AIでWebクローリングを爆速自動化しよう!|-D- 初歩的なWebスクレイピングならBeautifulSoupなどを利用して簡易に書ける。 以下、yahoo newsの指定したURLのtitleタグ…
選択的夫婦別姓の議論で、500年後は「佐藤さん」だけ? という記事が再度脚光を浴びていて、そんなわけあるか!という反論も数多くネットには出ていて、下記の記事が検索してすぐ出てきたので参考に読んでいたのですが、 500年後に日本人が佐藤だけになる」…
Pythonのスタイルガイド(コーディング規約)であるPEP8、つい面倒臭くなって準拠していないことが多い(反省)。先人の知恵には素直に従おう。 基本中の基本であるimport 文についてのメモ。自作モジュールからのインポートが大量に連なってきてタイポでバグ…
pytestなどでWebアプリの出力内容をテストする際、正しい結果の判定がhtmlコードを含む複雑な文字列だった場合、出力されるhtmlコードをそのままテストコード内で使うと管理が楽になります。 htmlコードは改行やインデントのスペースが大量に含まれているの…
ライブラリに依存しない単純な処理、例えばforループをjuliaとpythonで比較すると明確に速度差が現われる(pythonのforループの遅さはお約束ですが) 内容と結果: 2重のforループ1000回で、i*jの値を加算して結果を得る。 python 5.64秒 python(JIT) 0.069秒 J…
Julia というプログラミング言語を試してみました。Windows環境にインストールして、Jupyter Lab で実行できるようにセットアップして、素数に関する探索処理をpythonと比較して実行させてみまます。 処理内容: 1000万までの自然数に含まれる双子素数、エマ…
FlaskにはWebサイト・アプリ全体に適用できるキャッシュ機構としてFlask-Cachingがありますが、最近よく見かけるAstroなどの静的サイト生成みたいに、最初から静的HTMLを生成しておいてFlask側で読み込むだけにした場合、Flask-Cachingを有効にしたWebアプリ…
Python環境で使える良さげなWeb負荷テストツール「Locust」を試してみました。 テスト実行側(Locustを実行する方)環境: Ubuntu 22.04 LTS Python 3.12.0 vCPUS : 3 Mem : 4GB テスト対象側環境: Ubuntu 22.04 LTS Python 3.10.12 Webアプリ : Flask 3.0.0、W…
大規模なプロジェクトであればCI/CDがすでに整備されているかと思いますのでルールに従っていれば良いのですが、趣味の個人開発(ないし開発者が一人だけのプロジェクトとか)では、テストを考慮せず開発をスタートさせてしまうことはあると思います(推奨はさ…
趣味で開発しているWebアプリで、MySQLがだんだんと肥大化して処理が重くなってきたので、既存コードへの変更をできるだけ少なく手軽に高速化できる方法を考えていたところ、MySQL 8系でもMEMORYストレージエンジンによる高速化手法が使えたので、その際のメ…
Flask-Adminで構築した管理画面内に、とても簡単に検索機能が追加できたので、メモ。 やり方はとてもシンプルで、Flask-AdminのModelViewには標準で検索機能が組み込まれているため、column_searchable_list属性を使用して特定のカラムに対して検索を有効に…
趣味で作成しているWebアプリ(Python+Flask+waitress)に管理画面をつけたので手順メモ。 管理画面で行いたいことは、データベース(MySQL)への新規データ追加、既存レコード編集、削除だけとシンプルなので、Flask-AdminとFlask-Loginでささっと構築。 慣れて…
Pythonでデータ処理を行う際の標準的なライブラリともいわれるPandasですが、最近、より高速なライブラリとして「polars」というのが、よく利用されているそうです。 使い方は簡単。試しにやってみました。 インストール おなじみのpipで。最初は実験用の仮…
XserverVPSでPythonで書いたWebアプリをFlask+waitressで実行するまでの手順のメモです。 手順は以下の通りです。OSセットアップ直後の環境でスタートします。OSは Ubuntu 22にしています。 手順 sshでログイン。apt-get update を実行 apt install python3.…
吉凶数に続いて、任意の西暦年月日の数字の組み合わせで、縁起の良い数字あるいは悪い数字との関係性を探索するコード。単なるこじつけなので「こじつけ算」とでも呼ぼう。 コード: from itertools import itertools def decompose_number(number): return […
西暦年月日の各桁数を合計した数字を吉凶数というらしいです。完全にオカルトですが、そうはいっても、縁起の悪い数字は避けたかったり、逆に何か大事な数字を決める際は、一応、良いとされる数字にしてみたかったり。 ということで、暇つぶしに吉凶数を計算…
XserverVPSでは、「VPS管理」というコントールパネルから、OSやアプリケーションを再インストールができる。試しにDjangoでやってみた。 手順1: VPS管理からVPSパネルを開いてOS再インストールを選択 「電源操作」というところで、シャットダウンしないと「O…
Pythonでグラフ構造のダミーデータを生成しjsonで保存して関係図を描画するまでの一連のメモです。コード例も。 ダミーデータ生成: 以下のような仕様でダミーデータを生成します。 ノード : User_idエッジ : relative、friend、acquaintanceプロパティ : 氏…
Flaskアプリで、Mysqlと接続して情報を表示するという単純な処理で、DB接続のエラーハンドリングが失敗する。 mysql.connectorではなく、pymysqlライブラリを利用するようにしたら解消した。。。mysql.connectorとpymysqlを一緒に使うとダメなのかな。 mysql…
Pythonプロジェクトでソースコード群だけからrequirements.txtを生成する前準備のメモです。 githubなどからソースコードだけは取得できる状況で、手元には真っ新なPython環境しかなくて(出先で借りたパソコンで google colabとか)、requirements.txt なども…