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

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

【初心者向け】【Pytest】フィクスチャは引数配置順に実行されることに気を付けよう

# 初めに

冷静に考えると当然だけど、他のUnitテストフレームワークには無い要素なので記事化しました。

# フィクスチャは引数配置の順番に実行される

今回例題とするコードはこんなものになります。

“`mermaid
flowchart TD
subgraph フローチャート
start(“「A」が入った文字列リストを空にする”) –> a(“空の文字列リストに「B」を入れる”)
a –> end_(“文字列リストが[”B”]であることを確認する”)
end
“`

フィクスチャは引数配置順に実行されます。

そのためフィクスチャを利用するテスト`testFixture`の引数を`init_strs, add_b`の*順に並べるとフローチャート通りに実行されテストが通ります。*

“`python
import pytest

strs: list[str] = [“A”]

@pytest.fixture
def init_strs():
strs.clear()

@pytest.fixture
def add_b():

元記事を表示

「輪廻転生!訳ありローコードツールをPythonで再実現」社内冷蔵冷凍庫監視システムの作成 第二回

こんにちは!
東京圏のとある微生物検査室で、毎日食品安全を担保するために仕事を頑張っています。

私の`Qiita初投稿`は検査室にある冷蔵冷凍庫のデータを`API`で抽出して、ローコードツール`Make`を使って、`LINE Bot`に自動送信する仕組みを作成することです。詳細は以下の記事を参考してください~

https://qiita.com/mimicetacea/items/db7d1f7232207e66370b

これ実は、使えなかったです。なぜかというか、セキュリティ問題があります。
そうですよね、考え不足です!(社内でデジタルを始める人あるある問題w)
ではなにしたら、使えるようになりますかね?少し相談したら、「デジタルはもう慣れているようから、ローコードではなく、`Python`で実現するようとしたらどうですか?」の意見を戴きました。
なるほど!その手もあります!でもプログラミング言語は難しい…短時間でできなさそうです。
この時、去年の年末から、一気に流行り始めた`ChatGPT`は、会話だけではなく、コードを書いて

元記事を表示

multiprocessingの進捗を表示する備忘録

# multipocessingの進捗を表示する
初めに、プログラム全体を以下に示す。
“`
import os
import time
import random
from tqdm import tqdm
from multiprocessing import Process,cpu_count,Pool

def hoge(a,b,c):
“””
並列化したい処理が書かれている関数
“””
time.sleep(random.random()*5)
with open(“tmp.txt”,”a”) as f:
f.write(“{}を{}個{}で購入した\n”.format(a,b,c))

def wrap_hoge(params):
“””
imap_unorderedの引数で指定する関数オブジェクトは1引数しか取れないため、hogeをラップする
“””
hoge(*params)

params = []
param1s = [“リンゴ”,”ミカン”,”メロン”]
param2s =

元記事を表示

Virtualenvが動かなかったのでpyランチャーとvenvで何とかした話

ある日、virtualenvを入れようとしたら… こうなった
“`
python -m virtualenv venv –python 3.8.5
PEP-514 violation in Windows Registry at HKEY_LOCAL_MACHINE/PythonCore/3.11/InstallPath error
“`

原因は存在しないレジストリキーを参照しようとしてエラーが出ている模様。

ここらへんも読んだけど解決には至らず

https://peps.python.org/pep-0514/

で、venvを代用しようと(この時点でホントはやりたくなかった)していたら以下を発見。

https://pi-trade.tech/programing-learning/python-venv-how-to/

※やりたくなかった理由は以下

[https://mycodingjp.blogspot.com/2018/12/python-venv-virtualenv.html#:~:text=一方で、virtualenv は、Pythonのバージョン自身も

元記事を表示

主要言語で任意精度演算

# JavaScript

“`fig.html







```

https://jsfiddle.net/orb85g0d/

# Python
Python 3ではintに上限はない模様。

```fig.py
# Python 3
a = "3"
b = "3"
for i in

元記事を表示

Warning : `load_model` does not return WordVectorModel or SupervisedModel any more, but a `FastText` object which is very similar. への対処方法

# 警告の意味
Githubの[issues](https://github.com/facebookresearch/fastText/issues/1056)の内容を参考にすると、単にload_modelの使用が非推奨であることを伝えているだけで、気にする必要はないようである。

# 警告を消したい
警告をなくしたい場合、以下のように書くことで解決できる。
```
from fasttext.FastText import _FastText
fasttext_model = _FastText(model_path=fasttext_model_path) #fastext.load_model(path)の代わり
```
"_"がついているクラスを直接読んでいるためあまり推奨はされないが、fasttext.load_modelの実装は以下に示すようにprintで必ずWarningを出した上で、_FastTextクラスのインスタンスをreturnしているだけである。そのため、Warningを消したい場合、_FastTextクラスのインスタンスを直接作り出すしかないと考えられる。

元記事を表示

Python: APIなしでYouTubeライブの動画から主要チャット内容を拾う

# 注意・免責
:::note warn
注意:著作権上の問題もありますので利用には著作権者への同意を**ご自身**でお願いします。
:::
:::note alert
免責:私個人は取得されたデータによるいかなる損害も**保証しません**。
:::

# 概要
動作確認:Python3.11
使用してYouTubeライブの動画から主要チャットの内容の
* 元々のJSONファイル
* プレーンテキストファイル(UTF-8)
を出力します。なお、テキストファイルには「日付、ユーザー名、チャット内容」のみが抽出されているものが出力されます。
# どのような動作をするか
URLからJSONファイルを取得し、pythonのソースコードと同じディレクトリ(フォルダ)に出力し、それから「日付、ユーザー名、チャット内容」が抽出されたテキストファイルも同じディレクトリ(フォルダ)に出力します。

:::note info
つまり
URLを代入 → JSONファイル出力 → テキストファイル出力
:::

# 前準備
必要なライブラリは以下のとおりです。インストール済みの方はそのままで結構です。
```

元記事を表示

連合学習のチュートリアルを試す

# 環境
Ubuntu 22.04

# Flower
参考のサイト
https://flower.dev/docs/framework/quickstart-pytorch.html

コード
上記サイトのコピペをserver.pyとclient.pyで作成

設定
自分のPC内で実行するので、IPアドレスのところを
[::]
とした。

実行
ある端末で
python3 server.py
別の端末で
python3 client.py
もう一つ別の端末を開いて、
python3 client.py

実行結果

```
python3 server.py
INFO flwr 2023-08-14 20:52:36,639 | app.py:148 | Starting Flower server, config: ServerConfig(num_rounds=3, round_timeout=None)
INFO flwr 2023-08-14 20:52:36,644 | app.py:168 | Flower ECE: gRPC server running (3 rou

元記事を表示

デフォルトのpipが旧バージョンのPythonに紐付いていた時の解決方法

# Introduction

:::note info
__以前、同じ環境にPythonを同居させてしまった時の副作用が原因になっています。先に目を通していただくと理解しやすいかと存じます。__
:::

https://qiita.com/kagami_t/items/d606b83622f1efa80232

本記事では、Python自体は新バージョンをデフォルトにしたものの、pipは古いバージョンのがデフォルトになってしまった環境での解決方法を共有します。

__本記事が少しでも読者様の学びに繋がれば幸いです!__
__「いいね」をしていただけると今後の励みになるので、是非お願いします!__

## 環境
Ubuntu22.04

## 発生条件

FlaskとFastAPIとの比較を行っていたところ、個人PCにFlask-Loginをインストールしていないことに気が付き、インストールを行いました。

```bash
pip install Flask-Login
```

インストール後もVSCodeがimport文を認識しません。
pip listで確認してみます。

``

元記事を表示

Pythonの罠10選

皆さんはプログラムを組んでいて、あれ?思った通りの出力結果にならないという経験はありますでしょうか。単純なエラーであればいいですが、文法の理解が食い違っている場合、中々ミスに気づかない場合もあります。

今回はそんな知らないと沼にハマるかもしれないPythonの文法を10個ご紹介します。
1つでも新しい知見があると幸いです。

それではいってみましょう!

## 罠1:アイテム1のタプルもカンマが必要

タプルはカンマで区切られた値からなるので、アイテムが1つでもカンマが必要です。

忘れるとstr型だったり、int型になり、意外と気づかないです。。。

~~~py:In
single_tuple = ("hello",)
print(single_tuple)
print(type(single_tuple))
~~~
~~~:Out
('hello',)

~~~
※入力の際は丸括弧が無くてもタプルと認識されます。(式の一部として使っている場合は必要。)
~~~py:In
single_tuple = "hello",
print(single_tup

元記事を表示

新入社員(チーム配属者)のための開発環境2023

# チーム内開発環境について
新人研修を終え、ようやくチームへ配属される9月。
開発の最前線へ配属された皆様にはこれから様々な事を学んでいただきます。

そのために、少しでも開発環境は良い環境にしておきたいところ。
我がチームでは上層部が決めた提出フォルダ以外は特に決まりごとはありません。
なので今回紹介する開発環境は自分で好きにカスタマイズしていただいても大丈夫です。
(こうしたほうがいいってのを随時フィードバックしてくれると頼もしいです。)

## SVN
- svn tortoiseをインストール(CLIもチェック)
## windows
C/users/xxxx/Documentsに以下のフォルダを配置。
- xxxx_SYNC
- checkout
- "pj_name"

C直下に以下のフォルダを作成。
- commandフォルダを作成。
- sw_lib
- sw_setting

### pj_nameフォルダ
pj_nameフォルダはsvnでリポジトリ管理していきます。
フォルダ構成は以下で作成。
- pj_name
- appe

元記事を表示

Docker Compose+Pythonで環境構築してみる

# はじめに

今回はDocker Composeを使ってPythonの環境を作っていきたいと思います。
Dockerのインストールは完了していることを前提に進めていきます。

# 環境

DockerとDocker Composeのバージョンは以下の通りです。

```
Docker version 20.10.22, build 3a2c30b63a
Docker Compose version 2.20.3
```

# Dockerの設定
Dockerを使うことによってローカルやリモートマシン上での環境構築を簡単に自動化することができます。

## ファイル構成
まず、以下のようなファイル構成を作っていきます。
```
docker_python
├── Dockerfile
├── app
│ └── sample.py
└── docker-compose.yml
```

## Dockerfile
Dockerは、Dockerfileを読み込むことで自動的にDocker Imageを作成します。
Dockerfileは、ユーザーがDocker Imageを作

元記事を表示

Mecabでの no such file directory と format error の解決

# はじめに

Python3環境で Mecab を導入しようとしたところ、以下のようなエラーが発生した。重要なエラー内容は 最後に書かれている ERROR DETAILS の続きにある。

```
Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/MeCab/__init__.py", line 133, in __init__
super(Tagger, self).__init__(args)
RuntimeError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/workspaces/OpenCV/mecab.py", line 5, in
tagger = MeCab.Tagger()
File "/usr/local/lib/python3.

元記事を表示

高校の文化祭で事前注文~会計までできるシステム"NOSTA"を勝手に作った話

Qiitaの下書きには記事があるのに投稿されてないのなぁぜなぁぜ?

はじめまして「自称えんじにあ」のsasanquaです
普段からQiitaを読んでると自分と同年代なのにすごい記事を書いてる方々がたくさんいて尊敬してます...!

この記事も誰かの役に立てば嬉しいなと思いつつこの記事こそはちゃんと書きあげられるように頑張りたいと思います。

ちなみに開発したシステムは誰でも使えるように公開してます!
もし、文化祭とかで困ってるけどシステム作るほどじゃないって方は是非使ってあげてください...!
(公式ホームページのサービス説明やドキュメントはまだ作ってないけどちゃんと使えることは使えます)

https://nosta.prasic-plus.com/

:::note warn
**もちろん非公式です**
もし特定できたとしても学校など関係各所への問い合わせはご遠慮ください
:::

# 1. きっかけ

ネットサーフィンしていると文化祭で入場管理システムや会計システムを自作してる方々を見かけててなんか作りたいなーとは思っていたのでちょうど自分のクラスの今年の企画が飲食店だったこ

元記事を表示

Discord.py でBOT作成初挑戦(語尾ングアスから始まるbot開発)#01

# DiscrodのBOTを作ってみた

ことの発端は、ディスコードのサーバーでAmongUsというゲームをしているときのこと・・・
「語尾ングアス(ゴビングアス)で遊んでみませんか?」
と絶賛深夜帯で会議もないも脳が動いてない状態でのおふざけアモアスが始まりました。

その時は、ボイスチャットの自分の下の人に話してほしい語尾を渡すというもの。

その時ふと。(適当にワードを入れてランダムで取り出すくじ引き的なのがあればなぁ)
とか思いながら、ゲームを進めていました。
そして、discord.pyに手を出し始めるのでした。

## まずBOTを作るには。。。

BOTっぽいものは昔、Node.jsを使ってなんとなく作成がしたことがあり、めんどくさいけど作れるのかなぁ。
というノリで作成を始めましたが、Node.jsでは確実に無理と感じたので方向転換
調べてみると、Node.js・Python・Go辺りで作成ができるらしい。。。
Goはよくわかりません・・(;'∀')
もう少し調べを進めると、Discord.py PyCordみたいな言葉が並んでおり、「Pythonで作れるのか!」
とな

元記事を表示

【Pytorch】torch.einsumのequationの確認

# はじめに
torch.einsumという関数は、"ij,jk->ik"というequationを入力する必要がある。このequationがどういう動きをするのかよくわからなかったため、簡単な例で確認していく。

# equationの入力のi,jの意味
equationに入っているiとかjは、入力した配列の次元数に合わせて用意される。入力する配列が2次元配列ならiやjの文字が2つ用意される。もし、2次元配列が入力されているのにも関わらず、1つしか文字を指定しなかった場合エラーとなる。
```
>>>a = torch.arange(4).reshape(2,2)
tensor([[0, 1],
[2, 3]])

>>>torch.einsum("ij",a)
tensor([[0, 1],
[2, 3]])

>>torch.einsum("i",a)
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/pytho

元記事を表示

Pythonの学習におすすめ技術書5選【高校生エンジニアが解説】

# はじめに
みなさん、こんにちは。高校生エンジニアの[Raio](https://twitter.com/Raio14f)です?
公立高校に通いながら、放課後や休日はIT企業のエンジニアとして働いています。

今回の記事では、**Pythonの学習におすすめ技術書5選**について解説します!

# 技術書を無料で読む方法
KindleUnlimitedを使うことで、**沢山の技術書を無料で何冊でも読むことが可能です**?

- 200万冊以上の書籍が何冊でも読み放題
- 月額980円が今なら1ヶ月無料
- 場所に囚われず、様々な端末で使用可能

勿論、技術書以外にもビジネス書や漫画など種類豊富です!

**↓入会したい方は画像をクリック↓**
[![画像タイトル](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1341254/39184240-343f-a756-e7ed-e625c5aaf71a.png)](https://amzn.to/3rv5CZG)

# [Python 1年生 体験してわかる!会話で

元記事を表示

初心者がAIチャレンジやってみた(9):障害物回避モジュールを自作する①

# 概要
「初心者がAI Challengeやってみた」シリーズの第9弾です。
第8弾ではautowareにシンプルな自作パッケージを導入してみました。
今回は現在地と目的地を取得してポテンシャル場を計算し経路を探索するプログラムを作ってみます。

本シリーズでは[Japan Automotive AI Challenge 2023](https://www.jsae.or.jp/jaaic/)にautoware初心者の筆者が試行錯誤しながら挑戦する記録を公開しています。自動運転に興味があるけどプログラミングに自信が無い方などの参考になれば幸いです。

前の記事はこちら:
* 第1弾:[初心者がAIチャレンジやってみた(1)](https://qiita.com/h_bog/items/86fba5b94b2148c4d9da):Autowareを動かしてみる
* 第2弾:[初心者がAIチャレンジやってみた(2)](https://qiita.com/h_bog/items/a36df3042a342bd2a0c5):1つ目の障害物の回避成功
* 第3弾:[初心者がAIチャレンジやって

元記事を表示

Ubuntu20.04LTSのpython3にOpen3Dをインストール

Ubuntu20.04のPython3にOpen3dをインストール  
2023/08月現在のUbuntu20.04環境のpython3はVer3.8ですがこの環境にOpen3dをpipでインストールすると

”ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.”

要するにPyYAMLがディストリビューション側でインストールされているのでuninstallできないよと言っている。

pip list でPyYAMLのバージョンを調べてみると5.3.1がインストールされておりOpen3dの最新バージョンでは6.0.1が要求される

なのでOpen3dのバージョンでPyYAML5.3.1を使っているバージョンをインストールすればよいので

pip install open3d==0.

元記事を表示

LazyPredictで一気に分類・回帰モデルの精度を検証する

機械学習をする際に便利なLazyPredictを導入してみました。
SKLearn・LightGBMモデルの精度・評価指標とテストデータの予測値を一挙に検討できるので非常に便利です。自分用に分類予測用・回帰予測用のコードをメモしておきます。

https://lazypredict.readthedocs.io/en/stable/readme.html

# 回帰モデル
```python
# 以下のライブラリを使用
import numpy as np
import pandas as pd
import datetime

# 可視化ライブラリ
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
%matplotlib inline

# 小数第3位までを表示
%precision 3

# 今回は住宅価格の予測=回帰予測を行う
from sklearn.datasets import fetch_california_housing
data = fetch_california_housing()

元記事を表示

OTHERカテゴリの最新記事