Python関連のことを調べてみた2022年10月12日

Python関連のことを調べてみた2022年10月12日
目次

Xcode14 & Mac M1環境下でgrpcioが突然インストールできなくなったので対処した話

Google Cloud Platform(GCP)サービスをPythonなどから触るとき、grpcioライブラリがついて回ります。grpcioはc++で組まれている関係で、CPUアーキテクチャなどの環境によってビルドできたりビルドできなかったりが起こりやすいです。ある日、grpcioライブラリがインストールできない状態になり、調査の上解決したので忘備録を共有します。

## TL;DR

1. Xcode 14.0.xではgrpcioのビルドができないため、Xcode 13系を`/Applications/Xcode.app`に置いた上でビルドしましょう。

2. python 3.9.14や3.10.6を使えるのであればアップデートしましょう。

アップデートできない場合は以下のステップを踏みます。

– – –

grpcioのインストールに失敗したとき、ビルドログを見て以下の対処をします。

1. `error: expected unqualified-id`が頻出している → Xcode 14.0.xを使っているときに発生します。Xcode

元記事を表示

Python最適化モデルでコスパの良いクリスマスデートをシミュレートしてみよう


Python最適化モデルでコスパの良いクリスマスデートをシミュレートする

#### Pythonで最適化モデルを作成して安近短なデートプランをシミュレートしてみよう。

##### 目的
あまりお金と時間をかけずに楽しいデートにしたい。
#####条件
予算:月末で給料前なので5000円まで。
所要時間:平日で翌日も朝早いので7時待合わせなら12時まで。
コース:出来れば自宅マンションでクッキングデートが安近短で良い。
##### 参考データ
##### [政府統計e-Stat](https://www.e-stat.go.jp/stat-search/file-download?statInfId=000031654490&fileKind=0) 曜日,男女,ライフステージ,一緒にいた人,時刻区分別行動者率
この統計データから人気のコースを集約し、さらに経験則から時間当たりのコストや所要時間を加えて以下の表をCSV形式で作ってみた。
ninki 月2~3回はするという女性の人数(単位千)
jikan、cost 普通にかかる所要時間と予算(¥/h)を経験則で付加

元記事を表示

python tkinterで神経衰弱作ってみた

# tkinterで神経衰弱作ってみた
初投稿
python歴約4ヶ月なのでコード汚い
記事の書き方とかコードとか何かアドバイスあればお願いします。
ファイル分けろって意見は大丈夫です。これから頑張ります
## クラス変数
“`
import tkinter as tk
import time
from trump import Trump

class Game:
index = 0
count = 0
turn = 0
num = 0
scores = [0, 0]

before_x = 20
before_y = 20
check_x = list()
check_y = list()
cursor_x = 0
cursor_y = 0
mouse_x = 0
mouse_y = 0
mouse_c = False

trump_back = list()
trump_list = list()
for i in range(4):
trump_back.append([0,0,0,0,0,0,0,0,0

元記事を表示

Pythonの基礎知識(第一回の授業で自分が書いたノート)

# 関数
Pythonにはさまざまな関数が存在する。
例)
print() ⇨()内に入れたものをターミナルに出力する関数
len() ⇨()内に入れたものの文字数や要素数を数える関数
関数=便利なプログラム

# print()について
printは、出力と改行の意味を持つ
## 改行を消したい場合…
⇨endに『空文字(“”)』を入れる
“`
print(“ハローワールド”,end=””)
“`

元記事を表示

pythonで遊ぶだけ。

pythonで出力してみましょう!

pythonではprintで出力します。

~~~
print(‘こんにちは世界’)
~~~
:::note warn
注意
シングルクォーテーションまたはダブルクォーテーションで囲みましょう。
:::

pythonで入力してみましょう!

pythonではinputで入力します。

~~~
A=input(‘入力>>’)
print(A)
~~~
Aにターミナルで入力した文字が入ります。

printで入力した文字が出てきます。

実行結果

~~~
入力>>AAA
AAA
~~~

:::note warn
注意
シングルクォーテーションまたはダブルクォーテーションで囲みましょう。
:::

元記事を表示

PYTHONってなんぞ

Pythonむずかしい

Pythonはみんなに優しくて始めやすいと言われています。ですがPythonは関数を使ったりするのでむずかしいです。頑張ってw

元記事を表示

CHIRIMEN + Raspberry Pi 4B の環境構築の覚書

# はじめに
最近、chirimenというJavaScriptでRPiを使う機会があるので、chirimen + α の私なりの追加環境設定についての覚書です。

chirimen用のmicroSD制作とNode-REDインストールは[こちら](https://qiita.com/airpocket/items/d9b996238a14a800ecf4)に先にまとめてます。
使用するchirimenのimgは2021-08-12版です。

OSなどのバージョンはこんな感じ。
デフォルトのユーザー、パスワードは懐かしの[pi][raspberry]です。
“`shell
pi@raspberrypi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster
pi@raspberrypi:~ $ node -v
v14.17.5
pi@raspberryp

元記事を表示

【Microsoft Teams】Incoming Webhook メッセージに改行を入れる方法

先日、AWS LambdaからTeamsチャネルにメッセージを送るpythonコードを書きましたが、普通に以下のように書くことだけではメッセージの改行(NewLine)ができなかったので記録します。

# Before
“` python
message = f”””
こんにちは。
メッセージを送ります。
“””
“`

“`
# 出力結果
こんにちは。メッセージを送ります。
“`
multiple line stringで書いても出力してみたら1行のStringになっていました。

# After
調べてみたらTeamsに送るメッセージ(String)に改行を入れられる方法はいくつかあるみたいです。
“` python
message = f”””
こんにちは。

メッセージ1です。
メッセージ2です。 \r \n
メッセージ3です。 \n
“””
“`
“`
# 出力結果
こんにちは。
メッセージ1です。
メッセージ2です。
メッセージ3です。
“`
以下の4つを試してみたらOKでしたので、この中で選んで使えばいいかと思います。
– `

元記事を表示

音声認識のVoskでリアルタイムにPC上の音を文字起こし出来るようにしてみた

# 目的
所属部署の取り組みで何か作ってみようということで、Teams等の音声から文字起こしをして議事録作成を楽にする目的で試してみました。

# VOSKとは
オープンソースの音声認識ツールです。
20言語以上をサポートし、モデルデータも50MB程でビックデータの1GB版もあります。
対応言語はAndroid、ios、C、C#、GO、Java、NodeJs、Python、Ruby、Rustに対応。さらにDockerでサーバーとしても使用できます。

https://github.com/alphacep

# 前提
PythonがローカルPCにインストール済みであること。
WSL等のLinux環境が準備できていること。

https://qiita.com/ShogoMatsumoto/items/64fd5ea58d25a54ff7f0

# PC上の音を取り込む
### ステレオミキサーの確認
ステレオミキサー機能(PCから流れている音楽を録音する機能)の使用を想定していましたが、全てのパソコンに備わってはいないみたいです。

![image.png](https://qiit

元記事を表示

Pythonでjson内の文字置換をする

# まえおき
開発環境のJSONファイルを本番環境用の文字列に置き換えるため、Pythonを使用してyamlファイルから設定出来るように実装を行いました。

# 準備・コード実行
yamlをpythonで扱えるようにライブラリをインストールします。
“`
pip install pyyaml
“`

以下のyamlファイルを作成します。
“`replace.yaml
replace:
– index: 番号
before: 置換前文字
after: 置換後文字
“`

コードは以下になります。
実行後、指定したtest.jsonの内容が置き換えられます。
“`replace_json.py
import yaml

with open(r’YAMLファイルパス’, encoding=’utf-8′) as readYaml:
yaml = yaml.load(readYaml, Loader=yaml.Loader)

with open(r’JSONファイルパス’,”rt”, encoding=’utf-8′) as readPa

元記事を表示

【tsfresh】列名から特徴量生成用の辞書を作成する

# 目次
[1.概要](#1-概要)
[2.背景](#2-背景)
[3. tsfreshによる特徴量生成](#3-tsfreshによる特徴量生成)
– 3-1. データの作成
– 3-2. 特徴量生成
– 3-3. 生成された特徴量

[4. 特徴量列名から辞書へ](#4-特徴量列名から辞書へ)
– 4-1. 特徴量列名の構成
– 4-2. 辞書の作成1(不要な部分の削除)
– 4-3. 辞書の作成2(ノンパラメトリック特徴量)
– 4-4. 辞書の作成3(パラメトリック特徴量)
– 4-4-1. パラメータ名と設定値の分割
– 4-4-2. 設定値の編集(整数以外)
– 4-4-3. 設定値の編集(整数)
– 4-4-4. 辞書の作成
– 4-5. 作成した辞書で特徴量を生成

[5. 選択した特徴量を再生成](#5-選択した特徴量を再生成)
[6. ソースコード全体](#6-ソースコード全体)

# 1. 概要
tsfreshで生成したデータの列名から特徴量生成用の辞書を作成する方法を解説する。

# 2. 背景
tsfreshはデフォルトの設定だと

元記事を表示

Pythonのwithとcontextmanagerについて調べてみた

Pythonを使っていてwith句とcontextmanagerをなんとなく使っていたので、
自身の理解を深めるためにまとめました。

contextmanagerを理解するにはwith句を理解する必要があるっぽい。
なのでまずwithから復習します。

## with句について

– with句は「メインで行いたい処理」の「前後」に処理を埋め込める記述の仕方的なイメージ。
→ 例えばファイルとかデータベースのデータを操作する処理を記述するときとかに役に立つ。
→ ファイルやデータベースのデータを処理する場合、決まってファイルを開いたり、DBとのconnectionを通す必要があり、データの処理が終わった後はファイルを閉じたり、DBとの接続を閉じる必要がある。
→ with句を使わない場合は、例えばファイルの操作とかだと、try/finallyを使って、

1. ファイルを開く 
2. ファイルを操作
3. ファイルを閉じる

を記述する必要がある。

例えば以下ような感じ

“`python
try:
1.

元記事を表示

WordNetを使いやすいようにクラス化した話

# はじめに
 nltkライブラリにてWordNetを使って「十分使いやすいけどもっとザックリ使いたいなー」と思ったので、クラス化してみました。

# WordNet
 類義語や上位・下位などの関係性で示した概念辞書です。

# ダウンロード
 本題から逸れるため、以下を参照ください。コードもこちらを参考にさせていただきました。

https://happy-shibusawake.com/wordnet/456/#toc9

# 開発環境
python 3.9.12
janome 0.4.2
nltk 3.7

# コード
## コンストラクタと分かち書き
 トークナイザ・言語設定をコンストラクタで、単語を原形で変換するよう分かち書き関数を用意しました。
 原形でないとWordNetに引っかからない場合も多いので、分かち書きしています。
~~~ operate_wordnet.py
# -*- coding: utf-8 -*-
from nltk.corpus import wordnet as WN
from janome.tokenizer import Tokenizer

元記事を表示

pyenv install x.x.xがエラー終了...原因は最近必須になったあのモジュールに有った

Pythonのバージョン切り分けにpyenvを愛用しています.加えてrbenv,goenv,nodenvも愛用しています.今後も`**env`の利用が増加する可能性も有りそうです.そこで`anyenv`繋がりで全ての`**env`を管理出来る様にするための作業をしました.pyenvを除いて全て上手く再構築出来ました.ところが,pyenvだけ上手く復活しません.pyenv install 3.10.7と実行しようものなら,怒濤のエラー...:scream: :scream_cat: 仕方が無いので,最新バージョンのPython環境の構築には対応していないHomebrew版のpyenvを再度インストールするも,こちらも正常に動作せず,同様のエラー終了に...:scream: :scream_cat: 万事休すかに思われたのですが,原因を探ってみると意外な事実が判明しました.この記事はその記録です.

# 分かった事実: Python3.10.xからOpenSSL1.1.1が必須に
以下の記事で言及が有りますが,どうやらPython3.10.xからOpenSSL1.1.1が必須になりました.

元記事を表示

Diceクラスの不具合を改修するよ(コード改修/再テスト編)

# 概要

前々稿のコメントで不具合の指摘を貰い、前稿で不具合を再現したダイスの実装について、コードを改修して再テストするよ。

【前々稿】

https://qiita.com/gametsukurou/items/b8b006fcecd3742a333d

【前稿】

https://qiita.com/gametsukurou/items/2ebb742ee75c86309879

# 改修

## 不具合の改修

↓改修が必要なDice.pyのコード。

“`Dice.py
”’
Created on 2022/10/08

@author: 芸夢 作郎
”’

import random
import time

class Dice():
# TODO インスタンス変数を使用するよう改修
seedValue = None

def __init__(self, aSeedValue = None):
if (aSeedValue == None):
self.seedValue = int(time.ti

元記事を表示

arxiveの論文をDeepLのAPIで翻訳する

# 目的
Materials Infomaticsの最近のトレンドが把握したいけど、英語が苦手で論文のタイトルすら読むのがしんどい。そんなことを思っていると、arxivやDeepLのAPIがあることが判明。
[パナソニックHD 横山氏ツイート](https://twitter.com/yoko_materialDX/status/1558770410845618181)
早速使ってみた。

# 結果
とても使いやすくて、結果も閲覧しやすかった。
ただし、5分で、1ヶ月上限の50万字を突破してしまった。
有料会員は、¥630+¥2500/100万文字。
このペースだと、¥30,000/時間のペースで破産しかねないので、有料会員は一旦見送り。
## DeepLのAPI取得
DeepLのユーザー登録をして、APIを取得。無料版だと1ヶ月50万文字まで翻訳可能。
本人確認のため、クレジットカードの登録はあるが、自動的に有料会員への移行はないので安心。
[DeepL](https://www.deepl.com/ja/docs-api)
## スクリプト
ブラウザで開くと見やすいので、.mdで

元記事を表示

【python】初心者が深層学習で我が家の2匹の猫を判別させてみた

![neco.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884524/cf57bede-8483-2f07-3c14-27ba3a16d3b8.jpeg)

オス猫の「ソラ」とメスネコの「ミミ」2匹の猫を飼っているのですが、
「ソラ」の食欲が旺盛でミミ」の余った餌を食べてしまい、日に日に巨大化して困っています

ずっとつきっきりではいられないので
どちらがどれだけ餌を食べたかを把握するために
将来的にラズベリーパイとカメラを活用して動画で2匹の猫を判別させて、
それぞれの猫がどのくらいの餌を食べているかを記録するシステムをつくりたいと思っています

まずは前段として、オリジナルの猫の画像により、ディープラーニングのライブラリのTensorflow(Keras)を使用して
深層学習で「ソラ」と「ミミ」の判別させてみたと思います

作成にあたり、こちらのサイトを参考にさせていだきました
ありがとうございました

https://medium.com/lsc-psd/python%E5%88%9D%E5

元記事を表示

Pythonで特定の日付以前の過去のTweetを消去する

– [やること](#やること)
– [背景](#背景)
– [想定読者](#想定読者)
– [概要](#概要)
– [作業手順](#作業手順)
– [ソースコード](#ソースコード)
– [感想](#感想)
– [まとめ](#まとめ)
– [参考記事](#参考記事)

## やること
– Pythonで特定の日付以前の過去のTweetを消去する。

## 背景
– qiitaでも書くか~って思ったときに、Twitterアカウントをプロフィールに乗せたい気がする。
– あまりにも昔のTweetが残っていると恥ずかしい。
– でも最近のTweetは残しておきたい。

## 想定読者
– 自力でツイ消しプログラムを書きたい人
– 全件消すのではなく、特定の日付以前のTweetのみを消去したい人
– Pythonの基本的な文法がわかる人
– Linuxの環境変数設定がわかる人
– TwitterAPIのトークンなどの発行方法がわかる人
– Twitterからアーカイブを取得する方法がわかる人

## 概要
– コマンドラインから入力した年月日以前のツイー

元記事を表示

pytestのmock

# フォルダ構成

“`:tree
.
├── config.yml
├── main.py
├── src
│ ├── __init__.py
│ └── my_module.py
└── tests
├── __init__.py
└── unit
├── __init__.py
└── test_handler.py
“`

# サンプルコード

“`Python:main.py
import os
import src.my_module as my_module

def get_config() -> dict:
cd = os.path.dirname(os.path.abspath(__file__))
path = os.path.join(cd, ‘config.yml’)
with open(path, encoding=”utf-8″) as f:
config = yaml.safe_load(f)
return config

def main():

元記事を表示

Pythonで美しいグラフを描こう!(plotnine編)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1275001/6f2f3870-f6d9-bd25-08af-b51f2a92e540.png)
## はじめに

Rにggplot2という視覚化パッケージがあり、このPython版が [**plotnine**](https://pypi.org/project/plotnine/) です。
Python の視覚化といえば、matplotlib、[seaborn](https://pypi.org/project/seaborn/) が代表格。この他に[Bokeh](https://pypi.org/project/bokeh/) や[Plotly](https://pypi.org/project/plotly/) 等 さまざまありますが、ggplot2(=[**plotnine**](https://pypi.org/project/plotnine/))でしか描けないグラフもあり、これがまたいいんです。
見た目が美しく、美しいから

元記事を表示

OTHERカテゴリの最新記事