ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

Python

【Raspberry Pi】pip install が失敗する

Raspberry Pi で「pip install」を実行したところ以下のようなエラーになってしまいました。 test@raspberrypi:~/Desktop/samples $ pip install -r requirements.txt error: externally-managed-environment × This environment is externally managed ╰─> …

【python】mqtt を使ってみる

mqtt を使ってみたので、その時のメモをここに残します。 mqtt とは メリット 準備 Mosquitto インストール Broker client python paho-mqtt インストール 動作検証 broker(mosquitto) 起動 状態確認 Publisher / Subscriber 動作確認 Subscriber 実行 Publi…

【python】スプレッドシートの操作のメモ

gspread を使ってスプレッドシートを操作するときのよく使うサンプルをここにメモします。 ワークシートの操作 シート新規作成 書式 サンプル シート削除 書式 サンプル シート一覧取得 書式 サンプル シート名変更 書式 サンプル セルの操作 セルの値取得 …

How should I write Try/Except in a single line in python?

以下の問題をどうにかしたかったのですが、なかなかいい回避方法が思いつきません。;;一旦ここにメモφ(・ω・`). $ docker run --rm -u "1001" -v `pwd`:/mnt -e "TZ=Asia/Tokyo" -w /mnt --env-file env "sample" python -c "import os;import pandas as pd…

【Google】Cloud Storage を使ってみる

python を使って Google Cloud Storage にファイルをアップロードするタスクがあったので、対応手順をここにメモします。 Google Cloud Storage とは アップロード手順 準備 GOOGLE_APPLICATION_CREDENTIALS 生成 python ライブラリインストール(google-clou…

【Python】filecmp でファイルやディレクトリの比較

filecmp を使ってファイルやディレクトリの比較をしてみたので、その時のメモをここに残します。 filecmp とは 使い方 ファイルの比較 ディレクトリにあるファイルの比較 ディレクトリ比較 サンプル ファイルの比較 評価用ファイル コード 実行結果 ディレク…

【python】pybullet を使ってみる

pybullet を使ってみたので、その時のメモをここに残します。 pybullet インストール セットアップ サンプル実行 humanoid_manual_control.py pybullet pybullet は、オープンソースの物理演算エンジンです。 pybullet を使えば、Pythonで深層強化学習やロボ…

【Python】No module named '_tkinter' と表示されたときの対応

Mac にpyton をインストールしようとしたところ、エラーになってしまったのでその時の対応方法をここにメモします。 エラー 対処法 エラー pyenv で python v3.11.4 をインストールしようとしたところ、"ModuleNotFoundError: No module named '_tkinter'"と…

【Python】slackweb を使って slack に投稿

slackweb を使って slack に投稿する方法をここにメモします。 準備するもの slackweb ドキュメント github インストール サンプルコード text を投稿 attachments を使った投稿 準備するもの Webhook URL slackweb ドキュメント github github.com インスト…

【Python】json.dumps()で Unicode で表示される文字列を読めるようにする方法

python の json ライブラリを使っていて、json.dumps() で日本語が "\uXXXXXXXXXXXX" となるときの対処法をここにメモします。デフォルトでは、json.dump や json.dumps を使用すると、Unicode文字列はエンコードされてしまいますが、「enseure_ascii = fals…

【python】dolly-japanese-gpt-1b を使ってみる

dolly-japanese-gpt-1b を使って生成AIで遊んでみました。 準備 python バージョン確認 sentencepiece インストール torch インストール transformers インストール 使ってみる コード dolly-japanese-gpt-1b 実行 結果 質問と回答 質問: 一番好きなファイナ…

【Python】pyenv のアップデート方法(ubuntu)

pyenv は、pythonのバージョン管理システムです。 先日 v3.11.3をインストールしようとしてしたところ、以下のメッセージがでたため pyenv をアップデートしました。 $ pyenv install 3.11.3 python-build: definition not found: 3.11.3 See all available …

【Python】concurrent.futures を使った非同期処理

concurrent.futures を使って非同期処理(並列化)を実装してみたので、その時のメモをここに残します。 マニュアル 使い方 Executor max_workers マルチプロセス(ProcessPoolExecutor) マルチスレッド(ThreadPoolExecutor) プロセスとスレッドについて プロセ…

【python】asyncio を使った非同期処理

Python で非同期処理をしてみたので、ここにメモを残します。 asyncio とは ドキュメント asyncio とは "async / await" という構文を使って並列処理をするライブラリです。 ドキュメント asyncio --- 非同期 I/O — Python 3.11.0b5 ドキュメント

【Python】W605 invalid escape sequence '\W' を修正するには

flake8 でコードをチェックすると以下の警告が出てきたので解決する方法を調べてみました。 警告 W605 invalid escape sequence '\W' ルール Python 3.6 の時点で、有効なエスケープ シーケンスではないバックスラッシュと文字のペアは DeprecationWarning …

【Python】black でコードを整理

最近コードを整理するときに black を使用しています。github.com インストール $ pip install git+https://github.com/psf/black 使い方 $ black {source_file_or_directory}

【python】`ModuleNotFoundError: No module named '_ctypes'`というエラーを回避する方法

python の開発環境を移設したところ、新環境で以下のエラーに引っかかってしまったので、ここに回避方法をメモします。 問題のエラー 原因 対策 回避策 python アンインストール libffi-dev インストール 再度 python インストール python パッケージインス…

【python】`pip install requirements.txt` がうまくいかなかった時の対応

pyenv で v3.9.6 のpythonをインストールして以下のコマンドを実行したところ処理が失敗したので、困ったのでメモを残します。 $ pip install -r requirements.txt Collecting docopt==0.6.2 Using cached docopt-0.6.2.tar.gz (25 kB) Preparing metadata (…

python で json -> csv 変換

python を使って json から csv に変換させたい場合のメモをここに残します。 データ 入力データ(json) 出力データ(csv) プログラム データ 入力データ(json) 入力データは以下のものを想定してます。 { "template": [ { "path": {{path}}, "accountId": {{a…

【python】PyDrive をアップグレードしたら Google ドライブにアップロードする処理が失敗するようになって困った

PyDrive を使った古いプログラムを改修してライブラリをアップグレードしたら、 Google ドライブにアップロードする処理が失敗するようになって困ったためここに回避方法をメモします。 症状 原因 回避方法 症状 問題の python スクリプトを実行すると、処理…

【python】 yield の動きを調べてみる

yield の動きがピンとこないので、動作を調べてみました。 return と yield の違いについて return yeild プログラム yeild の挙動について(ループ) yeild の挙動について(ループ以外) return と yield の違いについて return と yeild を比較してみます。 r…

【python】pep8 の E501 とは何か調べてみる

python で開発を行っていると、たまにプルリクエストのコメントで E501 の指摘を目にします。 そこで今回は、pep8 の E501 についてメモしようと思います。python には pep8 というコーディング規約があります。 www.python.orgE501 は「E501 line too long…

python - うちのねこの画像をリサイズ

うちのネコの写真を OpenCV でリサイズしてみました。 import cv2 from matplotlib import * from pylab import * fname = "cat.jpg" img = cv2.imread(fname) imshow(img) リサイズ dst = cv2.resize(img, dsize=None, fx=0.1, fy=0.1) imshow(dst)

Python - Plotly でチャート作成

Python でデータ可視化の方法をここにメモしとこうと思います。 今回は Plotly を使ったチャートの作成方法です。 Plotly とは 前提条件 サンプルチャート作成手順 plotly インストール サンプルチャート Bar Chart Plotly とは カーソルを合わせると、その…

docker-compose を自分なりにまとめてみる(postgresとdjangoのアプリ)

今回は docker を使って postgres と django を使ったアプリの開発環境を作成する方法をここにメモしたいと思います。 docker-compose とは docker-compose を使うまでのステップ 作業フォルダ作成 Dockerfile 作成 Dockerfile に記載している requirements.…

【python】Pyinstaller で作成した exe ファイルがセキュリティソフトのチェックに引っかかってしまい色々調べてみた

Pyinstaller でビルドしたアプリがセキュリティソフトのフィルタに突然ヒットするようになったので原因を調べてみました。 同じような症状が出ていて対策を検討しているサイト 改善はみられなかったけど実施してみたこと pyinstaller の bootloader をリビル…

【python】cx_Freeze を使ってみる

Python のスクリプトファイルを exe 化する方法に cx_Freeze というものがあります。 今回は cx_Freeze について使い方をまとめてみました。 cx_Freeze とは 作成手順 cx_Freeze インストール exe ファイル作成 python スクリプト作成 setup.py ファイル作成…

【python】py2exe を使ってみる

python で開発したものを windows 端末に配布したいと考え py2exe の使い方をまとめました。 py2exe とは セットアップ手順 py2exe インストール 変換手順 python スクリプト作成 setup.py 作成 変換コマンド実行 py2exe とは py2exe は、python スクリプト…

【python】Pyinstaller でバイナリ化した実行ファイルにダイナミックリンクしているものがあったので完全に静的なライブラリ化をめざす方法

以前 Pyinstaller で実行ファイルを作成したのですが、ダイナミックリンクで作成されており、環境依存の問題を考慮し、完全に静的なライブラリで完結する実行ファイルにできないか調査してみました。a1026302.hatenablog.com以下のサイトを参考に完全に静的…

【python】PyInstaller で作った実行ファイルが crowdstrike で誤検知

Python で作成したプログラムがある日を境にセキュリティソフトに引っかかるようになってしまった。いろいろ回避策を模索しているがうまくいかず。。。 とりあえずこれまでの対応をいったんメモ。。。 状況 エラーメッセージ 検証内容 ウィルスチェックツー…