IT技術で仕事を減らしたい!

ITエンジニアのメモ+α

Python

Python httpxを使った非同期処理

どうも、nippa です。 Web サービスでは、JavaScript で非同期処理が活発に使われています。 最近では Python でも非同期処理が比較的簡単に利用できるようになってきましたので、 今回は requests と同じような扱いができる httpx での非同期処理を行ってみ…

Windowsでのpyenvのトラブル解決法

どうも、nippa です。 Windows の WSL2 上で python の仮想環境を構築したく、pyenv をインストールして python の仮想環境を管理しようとしたころ、python の build がすんなりできなかった ので備忘録代わりに記事にしておきます。 環境 Pyenv のインスト…

Python FITSファイルの操作

どうも、nippa です。 天文分野でよく使われれる FITS 形式のファイルを操作する必要があり、記事にまとめて おきたいと思います。 FITS 形式のファイルを扱うにはいくつかライブラリがあります。 astropy: Python FITSIO: Python CFITSIO: C 言語、Fortran …

Python PDFファイルの操作

どうも、nippa です。 Python で PDF の操作をしてみようと思いました。目標としては、PDF ファイルにタイム スタンプトークンを付与して、電子帳簿保存法で簡単にタイムスタンプを付与することを 目指します。 今回はその最初のステップとして、Python での…

Python AWS DynamoDBのシリアライザー・デシリアライザー

どうも、nippa です。 AWS DynamoDB で DynamoDB の専用の型を dict 型を渡す必要があったり、データを受け 取ったあとに処理しないといけません。 boto3 の dynamodb のライブラリの中には、その処理を簡略化する serializer、deserializer が用意されてい…

Python Boto3でAWS DynamoDBの基本操作

どうも、nippa です。 Python で AWS DynamoDB にアクセスするためのコードについてまとめておきます。 Boto3 を利用して、アクセスします。 環境 boto3 について boto3 のインストール 基本的な使い方 create_table put_item get_item update_item delete_i…

Python Poetry updateのwarningの解決

どうも、nippa です。 poetry のアップデートで warning がでました。 今回その対策を記事にしておきます。 環境 Warning の内容 Warning の解決 感想 (adsbygoogle = window.adsbygoogle || []).push({}); 環境 macOS 12.6 poetry 1.5.1 Warning の内容 poe…

macOS stable-diffusionを使ってみる

どうも、nippa です。 画像生成AIのstable-diffusionをmacOSで利用してみたいと思います。 stable-diffusion-webuiが便利そうなので、今回こちらを利用してWebUIで画像生成を行ってみます。 環境 インストール stable-diffusion-webuiを使ってみる モデルの…

Python TypingのLiteral型を使ってみる

どうも、nippa です。 最近 python で type annotation を使ってコード作成をしています。 Typescript では literal type をよく使うので、python でも Literal 型を扱うことが できます。 今回は typing の Laiteral についてまとめます。 環境 Typing の L…

Python Poetry requirements.txtからインストール

どうも、nippa です。 既存の requirements.txt から Poetry 管理に移行する場合の方法を記事にします。 環境 Shell スクリプトのコマンドを利用してインストール その1 その2 余談:Poetry から requirements.txt を作成 感想 (adsbygoogle = window.adsb…

Python Poetryを使ったDocker Imageの作成

どうも、nippa です。 python のパッケージ管理は requirements.txt から完全に poetry に移行しました。 docker image についても poetry に移行するために、Dockerfile を書いてみたいと思います。 Poetry1.2のアップデート情報はこちらの記事にまとめてい…

Python Poetry1.2の新機能

どうも、nippa です。 Poetry1.2 で追加された新機能をまとめておきます。 グループ機能と環境同期はお世話になりそうな機能です。 すべての機能は試せていないので、公式をご確認ください。 Poetry 1.2 公式リリースノート 環境 グループ機能 グループのフ…

Python Poetry完全アインストール

どうも、nippa です。 Poetry の機能をいろいろ試していたら、Poetry の環境がおかしくなったので、完全にアインストールして、再インストールしました。 トラブルの原意はキャッシュされていたファイルと設定の差分が原因だったのですが、時間が溶けたので…

Python Poetry 1.2へのアップデート

どうも、nippa です。 Python のパッケージ管理に Poetry を利用していますが、バージョン 1.2 がリリースされたので、1.1 から 1.2 へアップデートしてみました。 いくつか設定変更がありましたので、記事にしておきます。 環境 Poetry 1.2 の変更点 Poetry…

Python pytubeでyoutube動画情報取得

どうも、nippa です。 今回はネタ記事で、たまたま見つけた pytube というライブラリを紹介したいと思います。 pytube は 軽量なライブラリで、ライブラリ依存性がない youtube の動画情報をするためのライブラリになります。 動画のダウンロードは法律に触…

Python Poetry pyinstallerのインストールエラー

どうも、nippa です。 poetry で pyinstaller をインストールしようとした際にエラーが出ました。 他のパッケージでも起こりうることなので、その解決方法をまとめておきます。 環境 インストールのエラー内容 解決方法 poetry のバージョンの書き方 感想 (a…

Python Seleniumスクレイピング

どうも、nippa です。 スクレイピングの必要性が出てきたので、Selenium で Web 操作を自動化したいと思います。 Web 開発でのモンキーテストにも使えるので、知っていて損はないかと思います。 Web サイトによってはスクレイピングが禁止されているところも…

Python Poetry AssertionErrorエラー解消

どうも、nippa です。 Poetry のパッケージ管理で、AssertionError が起きたので解決策をまとめておきます。 環境 AssertionError の原因 感想 (adsbygoogle = window.adsbygoogle || []).push({}); 環境 macOS 11.6 poetry 1.1.14 AssertionError の原因 今…

Python 人名データセットを使ってみる

どうも、nippa です。 膨大なテストデータを生成するために、人名のデータセットを使ってみようと思います。 今回試してみるのは、names-datasetになります。 README を見る限り、結構充実してるように思います。 このデータセットは Facebook からリークさ…

Python ランダムな文字列生成

どうも、nippa です。 テストデータ作るときに、数字は簡単に乱数生成できますが、 文字列はどうするのか気になったので、まとめておきます。 環境 アルファベット 1 文字のランダム生成(chr) アルファベット 1 文字のランダム生成(string) ランダムな文字列…

Python Poetry主なコマンド一覧

どうも、nippa です。 Python パッケージ管理に Poetry を使ってるので使いそうな poetry でコマンドについてまとめておきます。 Poetry のインストール方法については、前回の記事を確認してください。 https://timesaving.hatenablog.com/entry/2022/02/05…

Python Poetryでのパッケージ管理

どうも、nippa です。 Python 記事は久しぶりになります。 今回は Python のパッケージの管理方法についてです。javascript や node.js、typescript だと npm、yarn などのパッケージ管理ツールがあります。 Python では requirements.txt を使って管理する…

Python pyenv アップデートでpathの設定が変更

どうも、nippa です。 pyenv をアップデートしたら、Homebrew の python と confliction を起こしました。 その解決方法を記載しておきます。 原因はアップデートで python の環境変数を指定しないといけなくなったことが原因のようです。 また anyenv を使…

Python pyinstallerで実行ファイル化(exe化)

どうも、nippa です。 python のライブラリの pyinsteller を使って配布用の実行ファイルの作成ができます。 プログラマを他人に渡したいが、ソースコード自体は渡したくないような場合に便利です。 少し使ってみたところ意外と便利だったため、まとめておこ…

Python GoogleSheetsAPIでスプレッドシートへ書き込み

どうも、nippa です。 前回に続き、Google スプレッドシートの操作についてまとめておきます。 今回は GoogleSheetAPI を利用して、スプレッドシートのセルに書き込みをしていきたいと思います。 GoogleSheetsAPI の詳細については、こちらを参考にしてくだ…

Python GoogleSheetsAPIでスプレッドシートの情報取得

どうも、nippa です。 python で便利な操作を勉強中です。 本日は、python で Google スプレッドシート(SpeadSheets)から情報を取得してみたいと思います。 Google の公式のクイックスタートを参考にして、python で GoogleSheetAPI を利用してみたいと思い…

python PyArmorでコードの難読化

どうも、nippa です。 python cryptography で暗号化についてまとめましたが、key をどのように保存するかについて考えていました。 セキュリティ的に可能な方法としては、 実行サーバとは別のサーバに保存 API 化 key 自体を難読化 1.と 2. は key を物理的…

Python cryptography 暗号化ライブラリを利用してみる

どうも、nippa です。 python で暗号化をできないかと思い、ライブラリを調べていました。 暗号化のライブラリとしては PyCryptodome pyca/cryptography があるようです。 PyCryptodome は pycrypto からフォークされたライブラリになります。 今回は後者の …

Python datatimeでの時間の取り扱い

どうも、nippa です。 本日は python の datetime に関してです。 時系列データで dataime を使うのですが、毎回使い方を忘れてしまい時間のロスが起きています。 この際ある程度まとめてしまって、この記事を参照しようと思います。 正式なドキュメントは p…

CentOS anaconda インストール

どうも、nippaです。 CentOSでpythonでの開発環境を準備になります。 今回はパッケージ管理にanacondaを利用しようと思います。 必要最低限であれば、minicondaを利用するのがおすすめです。 環境 anacondaのインストール 1. インストーラーのダウンロード 2…