テクめも

プログラミング関連のちょっとしたTipsなどを書いています。

不要なPythonライブラリを一括で削除するワンライナー

誤ってグローバル環境など別の環境にライブラリをインストールしたとき、依存関係でインストールされるものもあるので一つづつ削除するのは面倒です。 そこで、次のコマンドで一括で削除できます。 pip list --format json | jq '.[] | select((contains({na…

pipのキャッシュをクリアする

pip 20.1以降であれば pip cacheが使用でき、以下のコマンドでキャッシュをクリアできます。 pip cache purge それ以前のバージョンであれば、手動で削除できます。 # MacOSの場合 rm -r ~/Library/Caches/pip # Linuxの場合 rm -r ~/.cache/pip 参考 stacko…

S3からファイルに保存せずに画像を読み込む

S3に保存した画像ファイルをプログラム中で使用したいシナリオを多いかと思います。 一度ファイルに保存して、保存したファイルを読み込む方法もありますが、保存せずに利用する方法を紹介したいと思います。 from io import BytesIO import boto3 import nu…

よく使うMacのターミナルショートカットキー一覧

移動 Command Content Ctrl + a 行頭に移動する Ctrl + e 行末に移動する Option + ← 前の単語に移動する Option + → 後の単語に移動する 削除 Command Content Ctrl + w 前の単語を削除する Ctrl + u 行頭までを削除する Ctrl + k 行末までを削除する Ctrl …

HTTP通信のテストにhttpbinを使う

APIリクエストを行うプログラムの開発のときに、HTTP通信のテストをしたいときがあるかと思います。 httpbinを使うと、GETやPOSTなどのHTTPメソッドのテストができたり、特定のステータスコードのレスポンスを受け取ることができます。 例えば、GETリクエス…

jqで配列の番号を追加する

以下のような配列に対して、配列の番号が知りたいときがあるかと思います。 [ "a", "b", "c" ] jqを使うことで、配列の各要素に配列番号(index)を追加することができます。 echo '["a", "b", "c"]' | \ jq 'to_entries | map({name: .value, index: .key})…

pytestで複数の条件を組み合わせたテストする

pytestでは、parametrizeを使うと、条件を変えてテストすることができます。 以下の例では、x=0、x=1とx=2の3パターンがテストされます。 @pytest.mark.parametrize("x", [0, 1, 2]) def test_foo(x): pass ここに、flag=True/Falseも条件に加えたいとします…