Python3関連のことを調べてみた2023年10月05日

Python3関連のことを調べてみた2023年10月05日
目次

【Python】高速で省メモリな新しい日本語全角/半角変換モジュール Habachen

## はじめに
日本語の全角/半角を相互変換する Python のライブラリやスニペットは様々なものが公開されています。 Pure Python のライブラリですと、 [jaconv](https://github.com/ikegami-yukino/jaconv/) が有名ですね。最近だと、 [Utsuho](https://github.com/juno-rmks/utsuho/) が活発に開発されているようです。異字体セレクタも考慮されている点が、これまでのライブラリには無かった特徴だと思います。

ネイティブ拡張を使った CPython 用の高速な日本語の全角/半角変換モジュールと言えば、 [mojimoji](https://github.com/studio-ousia/mojimoji) が挙げられますが、 [issue](https://github.com/studio-ousia/mojimoji/issues/21) が立てられてから1年以上アクティビティがないということもあり[^1]、文字コードの勉強も兼ねて自分で同等のものを実装してみることにしたのですが、そ

元記事を表示

はじめてのChatGPT API 〜API呼び出し編〜

# はじめに
ChatGPTを使ったクイズアプリを作るにあたって、
前回はChatGPT APIについて得た情報をまとめたので、今回は実際にAPIを呼び出していきたいと思います!

また、開発中のあれこれについては以下のサイトでまとめています。
https://zenn.dev/kitaji12/scraps/a115ff66546e65

# 事前情報
– OpenAI / ChatGPT 初心者
– クイズアプリは React + Flask で作成

# 開発環境
– macOS Monterey 12.5
– Visual Studio Code 1.46.1
– Python 3.10.6
– Flask 2.3.2

# 準備
– [前回の記事](https://qiita.com/kitaji12/items/5ef3428f7c06bbbc7a75)で紹介したアカウントの作成からAPIキーの作成まで行う

# OpenAI ライブラリをインストール
Pythonのサンプルプロジェクトを作成し、OpenAIのライブラリをインストールします。
ターミナルを開き、以下のコマン

元記事を表示

SAM で PuLPをローカル起動した時に苦労した話

# 背景
 AWS Lambdaを利用してバックエンド開発を行っていた際、ローカルサーバーを起動した時にエラーが発生。PythonランタイムでPuLPと呼ばれるライブラリを使用していたのだが、デプロイ環境やpytest時には問題なく計算できるのに、ローカルサーバー起動時のみ計算できない。

# 目的
 AWS SAM にてPythonランタイムのLambda関数でPuLPライブラリを用いる際、ローカルサーバーでのプログラム実行時に発生した`’PULP_CBC_CMD: Not Available`による`PulpSolverError`を調査した結果、原因と、間に合わせだが解決方法が分かったので共有する。
なお、私のデバイスのみでしか発生しない、もしくは解決しない可能性もある。

# 結論
## 原因
`sam build`実行時に生成される`\.aws-sam\build\pulp\solverdir\cbc\linux\64\`内の`cbc`というファイルのパーミッションが`-rw-r–r–`になっている。
このcbcファイルは`-rwxr-xr-x`でなければ使用できず、

元記事を表示

【備忘録】importlibを使用した動的なインポート

### 事の発端

以前作成したPython形式のファイルをJSON形式のファイルに書き換えたいと思い立ち,

1. 変換対象のファイルから変数(中身は数字,文字,リスト,None,ブーリアン等)をインポート
2. インポートした変数を辞書型に変更
3. JSON形式で保存

を行う変換コードをPythonで作成してみました.変換対象のPythonファイルが1つであれば,変換コードの文頭で静的にインポートして万事解決でしたが,当該のPythonファイルが複数存在していたため,変換コード内でfor文を使用して一つ一つ変換していく運びになりました.

ところが,文頭以外で別のPythonファイルをインポートする方法が分からなかったので,「importlib」というパッケージを使用して文中で必要に応じてインポートするということにしました.

### 変換対象のファイルの例
このようなファイルが複数個存在しています.また,格納先は
/hoge/src/
内となっています.

“`/hoge/src/example.py
# 日付と番号
date = [“20230607”, 3]
# 名前

元記事を表示

Tello-Console 基本操作メソッド一覧


# 基本操作メソッド
 基本操作メソッドでは、ドローンの基本的な動作を制御します。

– [takeoff](https://qiita.com/GAI-313/items/702481de45d8b2bcface#takeoff)
ドローンを離陸させます
– [land](https://qiita.com/GAI-313/items/702481de45d8b2bcface#land)
ドローンを着陸させます
– [wait](https://qiita.com/GAI-313/items/702481de45d8b2bcface#wait)
ドローンを待機させます
– [forward](https://qiita.com/GAI-313/items/702481de45d8b2bcface#forward)
ドローンを前方へ移動させます
– [back](https://qiita.com/GAI-313/items/702481de45d8b2bcface#back)
ドローンを後方へ移動させます
– [right](https://qiita.

元記事を表示

pyenvのインストールではまってしまった。 メモ

Open Interpreter が有料だと思って無視していたが、無料だと分かりインストールしようとしたところPython3.9では動かないことが分かり、3.10に変更しょうと思いました。
VS-Codeのインタープリターで変更すれば良いかと思ったらそうはいかない。
ターミナル上で変更したいので、pyenvをインストールしました。
LinuxやMacだと簡単だがWindows上だと結構面倒で、かなりはまってしまった。
pyenvのインストールはこちらの記事が参考になりました。
[【pyenv-win】pyenv のインストールと実行](“https://qiita.com/probabilityhill/items/9a22f395a1e93206c846)

インストール完了後、バージョン確認のコマンドを実行すると、以下のエラーが出力
““`
‘DOSKEY’ は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
‘chcp’ は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていま

元記事を表示

Qiita への記事投稿のおすすめのやり方

すでにやっている方にとっては意味のない記事ですが…

プログラムと実行結果を共に記事にするには,Jupyter Lab でプログラムを含む記事を書き,Save and Export Notebook As … で Markdown を選び,出来上がった Markdown ファイルを Qiita の記事投稿ウインドウにコピペするのが最善。

見やすいし,プログラム片をPythonのREPLにコピペして(必要なら少し変更を加えて)実行してみることもできる。

以下は,つい最近投稿・公開された記事(プログラムと実行結果は画像として張り込まれている)を,上述のようなやり方で投稿するとどうなるかの実例である。

## 一次元配列の扱い

この部分に,解説記事を書く。

“`python
import numpy as np
a = np.array([1, 2, 3])
a
“`

array([1, 2, 3])

“`python
print(a)
“`

[1 2 3]

“`python
type(a)
“`

元記事を表示

Python3チートシート(データ分析編)

# 本記事の内容

1. Pythonの基本
2. 事前準備
3. pipコマンド
4. Jupyter Notebook
5. ライブラリによる分析の実践

# 1. Pythonの基本

基本的な内容は以下ご参照
https://qiita.com/1429takahiro/items/710a877b1afb1626334f

# 2. 事前準備

検証用環境として、OSSのanacondaを利用
https://anaconda.org/

“`python:前提環境
(base) [takahiro@ITakahiro ~]$ python
Python 3.7.6 (default, Jan 8 2020, 13:42:34)
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type “help”, “copyright”, “credits” or “license” for more information.
“`

##### venv環境の作成

– venvとはPy

元記事を表示

Spring × Ras Piでセンサから取得したデータを表示する #03AWS編

# 前回までに行ったこと
1. ローカルのPCでDocker上にデータベース構築とSpringでのサーバ構築
1. Ras Pi側でセンサからのデータを取得してdocker内のデータベースにデータ登録

# 今回行うこと
今までローカルのPCで行っていたことをAWSに移行する。

## AWSでdocker&docker-composeを動かす準備&テスト
### docker部分
[[AWS]EC2内でDockerコンテナを起動して、ブラウザからアクセスする](https://weseek.co.jp/tech/2196/)を参考にHello Worldの表示まで行った。
![スクリーンショット 2023-09-26 165149.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3473187/616a6b8e-d08f-4205-7640-f8d913fd042f.png)

### docker-compose部分
さらにここからdocker-composeを導入する。
[EC2(AmazonLin

元記事を表示

Pythonで画像ファイルのIPTCを更新する(pyexiv2)

## はじめに

先日、Pythonのpyexiv2を使って、複数の画像ファイルにつけたIPTCのキーワードを集計するという記事を書きました。

https://qiita.com/st10/items/5ae77fd5393365cce42a

当初は、キーワードの集計ができたところでよしとしていたのですが、キーワードの更新もやってみようと思い、試してみました。

## 環境

* OS: Windows 11 Home 22H2
* Python: 64ビット版、3.11.4

## インストール

* pip install pyexiv2

## IPTC情報のうち、キーワードを更新する

サンプルの画像ファイルからIPTCのキーワードを取得して、取得したキーワードの末尾に現在日時の文字列を追加するという処理を行っています。

キーワードに限らず、更新したい要素の値を作り込み、「要素名: 値」で辞書を作成、作成した辞書をmodify_iptc()メソッドで更新するという流れになります。

“`python
import pyexiv2
import datetime
impo

元記事を表示

Pythonのrequestsライブラリが読み込んでいるrootCA証明書の場所を確認するワンライナー

# はじめに
プロキシ環境下などにおいて、独自のrootCA証明書を読み込ませずにPythonでrequestsを行うとSSL証明書エラーが発生する。

requestsが読み込んでいる証明書に独自のrootCA証明書を追記すれば解決できるのだが、毎回読み込んでいる証明書の場所と確認方法を忘れてしまうので、自分向けの備忘として残しておく。

## 環境
Python 3.11.2

# 読み込んでいる証明書のパスを確認するワンライナー
pythonコマンドにcオプションをつけると、囲った中でコード実行ができる。
“`shell
$ python -c “import requests; print(requests.certs.where())”

# /usr/local/lib/python3.11/site-packages/certifi/cacert.pem ※Linuxはこんな感じ
# C:\Users\<ユーザー名>\AppData\Local\Programs\Python\Python311\Lib\site-packages\certifi\cacert.pem

元記事を表示

ChatGPTと会話しながらWEB上でCSVファイルをインポートできるように実装してみたのでメモメモ

どうもこんにちは。

Pythonチャレンジ第3弾です。

第1弾、第2弾を見ていない方はこちらからご覧ください。

https://qiita.com/PDC-Kurashinak/private/355fcd920aa6803e59f3

https://qiita.com/PDC-Kurashinak/private/41297d8bff6c938dd80e

今回は、WEB上からCSVファイルをインポートして、そのデータをWEB上に可視化するシステムを作ります。

# 実装方法

## 1. Flaskの拡張機能をインストール

ファイルのアップロードを簡単に扱うために、`Flask-WTF`という機能を使用します。
`requirements.txt`に以下を追加します。

“`makefile
Flask-WTF==0.15.1
“`

## 2. ファイルアップロードフォームの作成

`app.py`に以下のコードを追加します。

“`python
from flask_wtf import FlaskForm
from wtforms import FileFie

元記事を表示

ABC321 提出したコードや感想 (言語:Python)

# 記事構成
[1. Atcoder自己紹介](#1-Atcoder自己紹介)
[2. 各問題の感想と提出コード](#2-各問題の感想と提出コード)
[3. 今回の結果想](#3-今回の結果)
[4. 最後に](#4-最後に)

# 1. Atcoder自己紹介
– 茶色?コーダー
– 主な使用言語:Python,C++(C++は最近使ってません)
– 一時期休んでたけど最近再開
![abc321.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3564785/93cfb7d8-ea3c-206d-ba04-1fcfe0f3795b.png)

# 2. 各問題の感想と提出コード
## A問題
C問題へつながる問題.
文字列として一旦入力して,1桁ずつ調べていく方法で回答しました.
特にいうこと無し.
“`python:A問題
n = input()
num = len(n)
if num == 1:
print(‘Yes’)
exit()
for i in range(num-1):

元記事を表示

Djangoサーバー起動時にModuleNotFoundError: No module named ‘pkg_resources’が出た件

## 背景
バックエンドの環境が更新され、git pullし反映後、それまでは問題なく起動していたDjangoサーバーが起動しなくなった。
また、投稿者自身はもっぱらフロントエンド開発ばかりの為、pythonの知見はほぼない。

## 経緯
`git pull`を行い反映後、`poetry instal`を行う。
`python manage.py runserver`を実行したところ、エラーが発生。
もちろん、gitブランチを切り替えても解決せず、フロントエンド開発が出来なくなってしまった。

## エラー内容
細かいところは大人の事情で省略・・・
一番最後のエラーログ
“`
$ python manage.py runserver

… 省略 …
ModuleNotFoundError: No module named ‘pkg_resources’
“`

## 環境
– windows10
– Python 3.8.10
– poetry 1.1.12
– pip 21.3.1

## 調査した内容
– `poetry install`を行っても、相変わらず上記エラ

元記事を表示

JOINしてから条件絞り 条件絞りしてからJOIN

# はじめに
今回扱っていく内容はデータ分析をする上で大事な**前処理**の結合の部分について軽く触れていきたいと思います。またここでは私が学んだこと実践したことを書いていく記事なので間違いなどがある場合はご指摘の方よろしくお願い致します。

# 目次
[1.はじめに](#はじめに)
[2.動作環境](#2-動作環境)
[3.”JOINしてから条件絞り”と”条件絞りしてからJOIN” 処理の順番でどう違う?](#3-”JOINしてから条件絞り”と”条件絞りしてからJOIN” 処理の順番でどう違う?)
[4.まとめ](#4-まとめ)
[5.参考文献](#参考文献)

# 2. 動作環境
・ Mac OS 13.5
・ Jupyter lab(100本ノック)

# 3. ”JOINしてから条件絞り”と”条件絞りしてからJOIN” 処理の順番でどう違う?
私が前処理の勉強にお世話になっている「前処理大全」では”結合処理の前にデータを絞る方が良い”と記されています。では実際に処理時間などどう違っていくのか実践してみたいと思います。
“`python: 結合してから条件を絞る
# 結合処理の

元記事を表示

【Python】sympyの行列をlatex(matplotlib)で表示する

概要

sympyは代数の計算を行うことができる標準ライブラリです。
sympy.latex()関数を用いることで簡単に計算式のlatexコマンドを得ることができますが、行列のlatexコマンドをmatplotlibで表示したところエラーが発生したためその原因と解決策を書き残しておきます。

エラー

行列式を代入しlatex()でlatexコマンドへ変換した後、matplotlibでその数式を表示します。

“`python
from sympy import symbols, Matrix, latex
import matplotlib.pyplot as plt

#xを入力時のシンボルとして指定
x = symbols(‘x’)

#行列を定義
matrix = symbols(“a:z”, Integer=True)
matrix = Matrix()
m = Matrix([
[x**3 + 2, x – 2],
[2*x + 3, x**2 – x + 4]])

#mをlatexに変換
m = latex(m)

元記事を表示

MSTICpyの実践活用の一例の紹介 SANS APAC DFIR Summit 2023

# 伝えたいこと

2023年9月にSANS APAC DFIR Summit 2023にて
`「msticpyの実践活用: 高度な脅威ハンティングを実現すべくSIEMとの虹の懸け橋となる」`
と題して、Microsoftの脅威ハンティングツール msticpyの実践活用の方法の一例の紹介とmsticpyをAPACで布教させていただきました。
スライド資料の共有と、35分の発表時間に伝え切れなかったことをこちらで書きます。

# APAC DFIR Summitの発表スライド

持ち時間は35分で、Live Onlineの当日は700名ほどが参加されていたそうで、私は予定通り日本語で話し、同時通訳の方が英語に翻訳されました。Evaluationシートで コンテンツは5段階評価で平均4.31をいただき、プレゼンは平均4.21をいただくことができ一安心です。

日本語版の発表スライドはこちらです↓。

英語版「Practical msticpy use: ra

元記事を表示

bytes型を要素としたリストを、str型を要素としたリストにする(Python 3)

## はじめに

IPTCInfo3で画像ファイルの情報を取得すると、各要素の型はbytes型(文字列の文字コード)で返されます。
たとえば、キーワードを取得すると、「bytes型を要素としたリスト」を返してきます。

「2月,冬,雪,ダム,雪景色,青空,サンプル」であれば、`[b’2\xe6\x9c\x88′, b’\xe5\x86\xac’, b’\xe9\x9b\xaa’, b’\xe3\x83\x80\xe3\x83\xa0′, b’\xe9\x9b\xaa\xe6\x99\xaf\xe8\x89\xb2′, b’\xe9\x9d\x92\xe7\xa9\xba’, b’\xe3\x82\xb5\xe3\x83\xb3\xe3\x83\x97\xe3\x83\xab’]`が返されます。

これを`[‘2月’, ‘冬’, ‘雪’, ‘ダム’, ‘雪景色’, ‘青空’, ‘サンプル’]`としたいので、各要素をstr型にしたリストに変換する方法を確認しました。

## bytes型を要素としたリスト

IPTCInfo3が返してくるリストを想定しています。

“`python
#

元記事を表示

ChatGPT APIをお試しで使ってみる。

## 背景
入力したキーワードからクイズを生成してくれるWebアプリを作りたく、ChatGPT APIを利用するにあたり、準備作業を記事にしてみました。

## 準備

以下のサイトを参考に実施しました。

ChatGPT APIとは?始め方や使用時の注意点、活用事例を紹介

まずはOpenAIのサイトにアクセスしてログインします。
アカウントがない場合は、アカウントを作成します。
https://openai.com/product

ログイン後、以下のサイトからAPI Keysを発行します。
https://platform.openai.com/account/api-keys

こんな感じの画面
![](https://storage.googleapis.com/zenn-user-upload/be923b2f4ec0-20230720.png)

「Create new secret key」を押下して、適当なAPIKey名を入力、
「Create secret key」をクリックしたら、一度だけキーが表示されるので控えておきます

元記事を表示

Autokey フレーズとタスクのツール

+ Linux Mint21.1
+ Python3

すべてが書かれいます。 [Welcome to AutoKey! — AutoKey Main 0.96.0 documentation](https://autokey.github.io/)

## AutoKeyについて

+ Wikipedia 翻訳
“`
AutoKey を使用すると、ユーザーはホットキーとトリガー フレーズを定義して、
事前定義されたテキストに展開することができ、タイプミスや一般的なスペルミスの修正やテキストの定型セクションの挿入など、頻繁または反復的なタスクを自動化できます。
“`

## AutoKeyの2つの機能を持ちます。
:::note alert
変更したとき、Saveを忘れないこと。
:::

### テキスト置換

テキストエディタなどでユーザが、あらかじめ決めてある単語を入力します。
エンターキーを押下した時、登録していたテキスト文に置換してくれます。
![Auto01.png](https://qiita-image-store.s3.ap-northeast-1.am

元記事を表示

OTHERカテゴリの最新記事