up:: Programming

py pyenv

実行時間計測

処理前後でtime.time()を測る方法があるが、これは1秒以下の精度が良くない。
なのでtime.perf_counter()を使うのが正攻法。

Python 実行時間計測メモ - Qiita

あまりに短くて正確に測れないなら、timeit.repeat()を使う手がある。
grobals=grobals()としないとグローバル変数を呼んでくれないので注意。

Pythonのtimeitモジュールで処理時間を計測 | note.nkmk.me

なお、上記記事にもあるがjupyterなら%%timeitだけでセル全体を測れる。

メモリ消費計測

psutilを使う。

【Python】メモリ・CPUの使用率を取得する(psutil) | 鎖プログラム

より詳しく調べるmemory_profilerというのもある。普通はコマンドラインから実行する必要があるのでjupyterだと難しい。記事下部のマジックコマンド%mprumを使い関数に対して掛けるのが正攻法になる。

Pythonスクリプトのパフォーマンス計測ガイド | Yakst

Youtube-Data-API

やりたいこと

各Youtuberの最初のコメントを感情比較

デコレータ

関数やクラスの定義拡張。元の要素を呼び出すときに名前の前に@を付ける。

例えば@kb.add(Keys.Tab)の場合、事前に用意したkb.add関数を利用して、kb関数にkb.tab関数を追加している。

py 辞書逆検索

py numpy二次元配列内に一次元配列が完全に存在するか

ストアが開く

Windows で Python 実行時に Microsoft Store が起動する問題の対処方法 | Lonely Mobiler

ゴミ機能。アプリ実行エイリアスからしっかりkill。

仮想環境

他にもあるけど割愛。

  • pyenv
    インタプリタごと変えられる。つまり好きなバージョンのpythonが使える。
  • venv
    完全に切り離してpythonローカル環境を作れる。
    python公式が作った。virtualenvはこれが出る前にあった非公式版。
  • pipenv
    パッケージリストに詳しい情報を書き込める。
    pipコマンドを全てpipenvコマンドに書き換える必要があり面倒。
  • pipx
    「仮想環境ごとで共通しているパッケージ」を管理できる。
  • poetry
    依存関係、パッケージ、仮想環境、プロジェクト設定、ビルド、公開などを管理できる。
    仮想環境はプロジェクトごとに自動的に作成される。
    さらにpipenvのようにpipenvしか使えなくなったりはしない。

pyenv、pyenv-virtualenv、venv、Anaconda、Pipenv。私はPipenvを使う。 Python - Qiita
Python環境構築(pyenv+poetry+pipx) Python - Qiita
pyenvとPoetryでPythonの開発環境を整える

JIT

pythonをコンパイルして早くするやつ。

変数のattributeやmethodを調べる

dir()。デバッガー使えるならそれで調べたほうが早い。

cannot import name ‘notf’ from ‘tensorboard.compat’

tensorboard, tensorflow, numpy, jaxなどのエラー。
pip install numpy==1.19.0はpython3.9までのサポートなので使えない。
tensorboardのアプデも試したが結局わかんなかった。

module ‘torch.library’ has no attribute ‘register_fake’

register_fakeはpytorch2.4から。アプデ。
Pytorch 2.4.0 - module ‘torch.library’ has no attribute ‘register_fake’ · Issue #8958 · huggingface/diffusers