Python関連のことを調べてみた2023年01月28日

Python関連のことを調べてみた2023年01月28日
目次

VSCodeでPythonのPipenvの仮想環境から抜け出せない

# 結論
VSCodeでPythonを扱う際、自動的に仮想環境が適用されるので、別の環境を使用したい場合は、手動でインタープリタを選択する。

# はじめに
VSCode内のターミナルを使用してPythonの仮想環境であるPipenvを利用していましたが、ある時から仮想環境から抜け出せない状態になりました。
なんとか解決したので、原因と解決策をまとめます。

## 環境
– Mac OS 12.6.2
– Visual Studio Code 1.74.3
– pyenv 2.3.8
– pipenv 2022.11.30

Pythonはpyenvを利用してバージョン管理をしています。

# Pipenvとは
プロジェクトごとに仮想環境を作成、それぞれの環境でライブラリをインストールできます。複数のプロジェクトを一台のPCで同時進行する際に、お互いに環境に影響されずにすみます。
>It automatically creates and manages a virtualenv for your projects, as well as adds/removes packages f

元記事を表示

2022年に開発したアプリを振り返る

# 2022年に作成したアプリを振り返る

今更ですが、2022年に作ったアプリを振り返ろうと思います。(修論書いてたら、2022年終わってました)

## 結論

– LINEチャットでカロリー計算してくれるアプリ
– Googleカレンダーから使った時間を計算する自己分析サイト
– 法政大学のサークル一覧サイト

## LINEチャットアプリ
![9.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620639/c8183df8-3b8b-58b8-ac6f-9801b9ad51df.jpeg)

### システム概要
システムの大まかな概要は、図のとおりです。
Line messaging apiとFlaskを使ってwebアプリケーションを作成したました。

![10.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620639/a522dba4-fa58-a0bb-8ddd-f851a4fd9472.jpeg)

元記事を表示

FlaskFormで、formを動的に生成する

FlaskFormはイロイロ便利ではありますが、もう少し柔軟に使えないかなぁ・・・と、お悩みのあなたに。

普通は、こんな感じで事前に定義しておきます。
~~~
from flask_wtf import FlaskForm
from wtforms import StringField

class EventForm(FlaskForm):
name = StringField(‘Event Title’)

form = EventForm()
~~~

これを動的に生成する方法を考えてみました。

メリット
・Viewを共通化できます。
・Formクラスの生成をカスタマイズできます。
・FlaskFormの利便性を、そのまま享受できます。

まず、設定情報を作ります。
~~~
form_conf = {
‘Event’: {
‘name’: StringField(‘Event Title’)
}
}
~~~

次にクラスを定義します。
~~~
class ExForm:
def __new__(cls, kind):

元記事を表示

Pythonでtomlファイルを用いたlogging

## 概要
– エラーレベルに応じてloggerを使い分ける実装例
– loggerの設定はtomlファイルで実施
– Python3.11.0以降に追加されたtomlを読み込むライブラリを使用

| logger | 備考 |
| — | — |
| applicationlogger | application.logにINFO 以上を記録 |
| emergencylogger | emergency.logにERROR 以上を記録 |

## バージョン
– Python 3.11.0以降
– poetry

## ディレクトリ構成
“`sh
.
├── pyproject.toml # Poetryプロジェクトの設定ファイル
└── template
   ├── __init__.py
   └── example.py # ログの使用例
“`

## 実装

### Poetryプロジェクトの設定ファイル
“`toml:pyproject.toml
[tool.poetry]
name = “template”
version = “1.0.2

元記事を表示

TensorFlowのインストール(pip)失敗でハマった話(Could not find a version that satisfies the requirement)

# 1.この記事の内容

長らく使っていなかった“Dockerfile“を使ってDocker Imageをビルドしなおす機会があり,この環境でTensorFlowの“pip install“が失敗する問題に遭遇しました.
解決まで結構ハマってしまったのですが,初歩的なミスだったので自分への戒めも兼ねて,書き留めることにしました.

結論だけ先に述べておくと,**インストール対象のパッケージがサポートしているPythonのバージョンを使いましょう**,ということです.

# 2.エラー内容

「TensorFlow version 2.8.0rc0の要件を満たしていません」といった内容のエラーです.

“`
ERROR: Could not find a version that satisfies the requirement tensorflow==2.8.0rc0 (from versions: none)
ERROR: No matching distribution found for tensorflow==2.8.0rc0
“`

# 3.原因

“Do

元記事を表示

Djangoで作ったWebアプリをデプロイした際に起きた、gunicornが理由の500番台エラーの解消

はじめに

ロリポップマネージドクラウドを利用し、djangoで作ったアプリをデプロイした際に500番代のエラーが起きた。

結論から言うと、**gunicorn** が起動していないことが原因だった。

解決法は難しくないが、勉強にもなったので忘備録として残したい。

エラー解決手順

まず、デプロイに関しては
[[Python] Django を使用したWebアプリの作成](https://support.mc.lolipop.jp/hc/ja/articles/360011824713–Python-Django-%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%9FWeb%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E4%BD%9C%E6%88%90)
こちらのロリポップ公式が書いてくれている記事を参考にすれば、そこまで問題はなかった。

ただ、この記事の **7. 起動コマンドの変更** という章に、起動コマンドとして

“/var/app/shared/bin/gunic

元記事を表示

出社/退社のWeb打刻とSlackでの出社/退社報告を自動で行うコードを書いた

**Windows向けの話です。Macの人は工夫すればなんとかなると思います。**

## はじめに
朝、会社に着いたらまずすることってなんでしょう?
**そう、打刻ですね。**
特に、私は現在アルバイトの身分であり、時給制なので、**打刻は1分1秒を争います。**

うちの事業部では、打刻と同時に、Slackのチャンネルへ出社/退社報告をする決まりになっています。
ところが、私はいつもWeb打刻が終わると安心してしまって、Slackへの報告を忘れてしまいます。
(生まれつき注意欠陥な性質もあり…)
**これでは他のメンバーが私が出社しているか否か確認できません。**

なので、コマンド一発で打刻とSlackへの報告を同時に行えるようにしました。

## リポジトリ
https://github.com/are-38-a/syussha-taisha-dakoku-Slack

## しくみ

* PythonのGUI操作ライブラリPyAutoGUIを使う
* Windowsの機能「ファイル名を指定して実行」を使う
* Slackアプリとslack_sdkを使う

## 解説

元記事を表示

DeepLearning基礎技術まとめ

# はじめに
DeepLearning では様々なデータを扱います.テーブルデータ,画像,3D,時系列,etc. 何を使うにしても必要となる技術についてまとめておきます.(自分の為も兼ねて)

# 目次
[1 DNNの基本](##1-DNNの基本)
[1.1 DeepLearning って??](##1.1-DeepLearning-って??)
[1.2 全結合層](##1.2-全結合層)
[1.3 活性化関数](##1.3-活性化関数)
[1.4 Loss関数](##1.4-Loss関数)
[2 特徴分布](#2-特徴分布)
[3 Validation](#3-Validation)
[4 交差検証](#4-交差検証)
[5 アンサンブル学習](#5-アンサンブル学習)

# 1 DNNの基本
## 1.1 DeepLearning って??
例えば,よくある画像の分類について考えます.
?と?の画像分類をしたいとき,学習データを用意して,それをDeepLearning で学習します.すると,この写真に写ってるのは????といった問題を解けるようなものが出来上がります.

これはつ

元記事を表示

PostgreSQLを起動しようとしたらエラーが出た。Error: Failure while executing;

自分のメモ用として作成しました。
同じようなエラーが起きた方は是非参考にしてみてください。

## 環境
M1 MacbookAir

## エラーの内容

ターミナルを開いて、Postgresqlを開こうとしたら以下のエラーが発生した。

“`
Failure while executing; `/bin/launchctl bootstrap gui/502 /~~/ .postgresql@14.plist` exited with 5.
“`

Bootstrapと書いてあり、身に覚えのないエラーだった。

## 解決策

とりあえずPostgreSQLを停止させてみようと思い、停止後に再度起動した所。

“`
% brew services stop postgresql@14
==> Successfully stopped `postgresql@14` (label: homebrew.mxcl.postgresql@14)

% brew services start postgresql@14
==> Successfully started `postgr

元記事を表示

[pandas] query関数によるSeries, DataFrameの条件抽出

Series, DataFrameの統計量の求め方をまとめてみた。

# 公式のdocumentation
– [pandas.DataFrame.query](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.query.html)

# 目次
– 動作環境
– 今回扱うDataFrameについて
– 条件抽出: 単一条件
– 条件抽出: 複数条件
– 元のデータの変更

# 動作環境
|種類 |バージョン |
|:—————|:————–|
|MacBook Air |Ventura13.0.1 |
|python |3.9.6 |
|jupyter notebook|6.5.2 |
|pandas |1.5.2 |

まずはパッケージのインポートから
“`python:
import pandas as pd
“`
panda

元記事を表示

【Mac M1】Stable Diffusionをローカル環境で実行する方法(brew/python/venv)

# 概要
* 以下環境のPCでStable Diffusionを動かすことができたので、その構築手順を残します。
* brew/python/venv だけなので多分一番楽の構築手順かなと思います
* ちなみにIntelチップのMacも持っているのですが、そちらではうまくできませんでした…

## Mac
* 機種ID:MacBookPro18,3
* macOS:Monterey
* チップ:Apple M1 Pro
* メモリ:16GB

## 参考記事
* 以下の記事が一番簡潔で実行しやすい手順だと思います。今回もこちらに沿って実施しました。
* [【簡単】Stable Diffusionを「M1/M2」の「MacBook」で動かす方法](https://manablog.org/stable-diffusion-mac-m1/)

# 手順
①Homebrewのインストール
②python3のインストール
③リポジトリのクローン
④バーチャル環境の構築
⑤学習済みモデルのダウンロード
⑥Stable Diffusionの実行

## ①Homebre

元記事を表示

多クラス分類のモデル評価

## 概要

分類分類(classification)タスクは、機械学習における主要なタスクであり、データが属するカテゴリーやクラス、種類が何なのかを判定する手法になります。例えば、画像を「猫」「犬」「その他」の3つのカテゴリーに分類するタスクが分類タスクに該当します。

分類タスクには様々な種類があります。

1. バイナリ分類: 2つのカテゴリーから1つを選ぶタスク。例えば、スパムメールか否かの分類タスクがこれに該当します。
2. 多クラス分類: 複数のカテゴリーから1つを選ぶタスク。例えば、画像を「猫」「犬」「その他」の3つのカテゴリーに分類するタスクがこれに該当します。
3. 多ラベル分類: 複数のカテゴリーから複数を選ぶタスク。例えば、画像に「猫」「犬」「鳥」「動物」などのラベルを付けるタスクがこれに該当します。

本記事では、多クラス分類のモデル評価を開発し、実験したいと思います。コードを実行し、結果を説明します。使用する環境はGoogle Colabです。

## 環境構築

ライブラリをインポートします。

“`python
# 計算
import numpy as

元記事を表示

デジタル庁の登記所備付地図データ変換コンバータをWebアプリ化した

# はじめに
法務省法務局登記所備付地図データがオープンデータ化されました。
https://www.moj.go.jp/MINJI/minji05_00494.html

これに合わせてデジタル庁から登記所備付地図データ変換コンバータがOSSで公開されました。

https://github.com/JDA-DM/mojxml2geojson/

https://data-gov.note.jp/n/n367f1e368d22

## コンバータのAPI化
デジタル庁のコンバータはpip installしてCUI上から使用するもので、ITエンジニアならちょちょっと使えますが、地図データを望んでいた多くの方々はさっぱりわからん状態で使えていないのが現状です。

そこで、誰でも簡単に使えるようにWebアプリにしてしまおうと思ったのが今回のAPI化のきっかけです。

作ったWebアプリがこちら

https://mojxml2geojson.web.app

フレームワークとしてはフロントエンドは適当にVueで作って、APIはFlaskを使いました。

## ソースコード
ソースコードはこ

元記事を表示

Error previewing graph. Please run `pip3 install cfn-lint pydot –upgrade` の対処法

# エラー内容

VScodeの拡張機能 `CloudFormation Linter` でプレビューを表示しようとするとエラーになる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449867/6fd4e49f-27be-0e1e-23e4-6c3b92de3a69.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449867/7f78dc68-8638-f60c-75df-8560db862662.png)

# 原因
1. 必要なパッケージがインストールされていない
2. VScodeの `CFn Lint: Path` が違う

# 対処法
## 1. 必要なパッケージがインストールされていないの対処法
エラーで提示された以下のコマンドを実行する。
“`
pip3 install cfn-lint pydot –upgrade
“`

## 2. VScode

元記事を表示

?機械学習のはじめかた

# はじめに
来年度研究室に入ってくる機械学習未学習の学生に向けて,まとめないとなぁと思ったので,さっそく行動してみました:runner:
Python・機械学習したことないよって人向けにどう勉強していくのかをまとめました.

この記事は以下の人におすすめです.
– 機械学習どうやって勉強すればいいの?
– Pythonの実行環境わからない:crying_cat_face:
– 触りだけでいいから機械学習してみたい!

# 目次
[1. Pythonの環境構築をする](#1.Pythonの環境構築)
[2. Pythonの基本的な書き方について学ぶ](#2.Pythonの基本文法)
[3. 機械学習の基礎を学ぶ](#3.機械学習の基礎)
[4. Kaggeleで実際にモデルを書いてみよう!](#4.実際にモデルを書こう!)

## 1.Pythonの環境構築
まずはPythonを動作させる環境をつくりましょう.
環境構築に必要なものは以下の2つです.
– Anaconda
– VSCode

先人たちが記事をたくさん上げてくれているので,それを見てインストールしてください.
[Ana

元記事を表示

ウルシステムズプログラミングコンテスト2023(ABC286) A~E問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder

ウルシステムズプログラミングコンテスト2023(AtCoder Beginner Contest 286) A~E問題の解説記事です。
灰色~茶色コーダーの方向けに解説しています。

その他のABC解説、動画などは以下です。

更新時はツイッターにて通知します。

https://qiita.com/sano192/items/54accd04df62242b70f0

# ウルシステムズ株式会社様について

【新卒採用】
https://ulsystems-recruit.snar.jp/jobboard/apply.aspx
【中途採用】
https://hrmos.co/pages/ulsystems/jobs

# A Dif:30

https://atcoder.jp/contests/abc286/tasks/abc286_a

A問題にしては少し難しい問題だったと思います。

まずAの要素をリストで受け取り、1~P-1,P~Q,Q+1~R-1,R~S,S+1~Nの5箇所へ分けましょう。
入力例4であれば
10 2

元記事を表示

シリアル通信ソフトを作成した

# 欲しい! 簡易シリアル通信アプリ

 マイコンで装置を製作するとする、例えばXIAO RP2040 マイコンをMIcro pythonで複数のステップモータへの指令パルス発生装置を製作するとする。
 シリアル通信コマンドを受けて動作を行うプログラムを作成する時に、コマンドを送信して動作確認を行いたい。または、装置にコマンドを送って動作させたい。
 シリアルコマンドを送信するために、その昔は、秀Term、TeraTerm、PuTTYなどを使用していたが、近頃はArduino IDEのシリアル通信アプリが使い良いので、もっぱら使用してる。
 Arduino IDE並に軽いTermアプリがないものか、探してみたが、ない。

 簡単にシリアル通信コマンドを送信するもうひとつの方法は、PythonでPyserialを使ったプログラムを作って通信を行うやり方だ。これだとマイコン用のpythonエディタThonnyと別にpythonエディタを開いて、両方のプログラムをいじるという煩雑さがある。

 そこで、Arduino IDE並に簡単な汎用のTearmアプリをPython、Pyserial、

元記事を表示

監視カメラの映像をOBSでライブ配信していて、Pythonでシーンを自動切り替えできるようにしてみた

# はじめに

去年の年末から店舗を運営することになり、遠隔監視ができたらいいな〜と思っていたところ、簡単にできそうだったので試してみました。

# 使ったもの

– [監視カメラとレコーダー](https://amzn.to/3HAhAXm)
– [HDMI-USB変換アダプタ](https://amzn.to/3Y31B9S)
– ワークステーション(DELL Precision 3690)
– [OBS](https://obsproject.com/)

# 基本設定

– 監視カメラを設置し、レコーダーに接続
– レコーダのHDMI出力に変換アダプタを接続
– USBをワークステーションに接続
– OBSでキャプチャデバイスとして映像を配信

# やりたくなったこと

同じ映像がずっと流れるのは少しつまらないかなと思ったので、少し工夫してみたくなりました

– カメラのレイアウトを変えたシーンをいくつか作ってそれを切り替えながら見れるようにしたい
– レイアウトに隙間があるので、店舗の告知も入れていきたい

結果、いくつか面白そうなシーンができたので、これを切り替えながら表示

元記事を表示

brew install old version’s formula

# Background

Sometime if we want to install some old version’s formula, for example I was hope to install a old version python with brew.
Basically we can install the latest version of 3.7, for now it is 3.7.16, but what if I want to install 3.7.2?

Here introduce a way to do it.

# Extract the old version

First extract the specified version to local, it will show the saved path when extract succeed.

“`shell
brew extract –version=3.7.2 python homebrew/cask
“`

# Install the old version of

元記事を表示

flaskでSQLiteのデータベース作成時に発生するapp.app_context()に関するエラーを解決する。

flaskでSQLiteのデータベースを作成するときに、以下のようなエラーが発生した。teratailでのとある質問のやりとりが参考になったので、紹介しようと思う。
## 発生したエラー
This typically means that you attempted to use functionality that needed
the current application. To solve this, set up an application context
with app.app_context(). See the documentation for more information.
## エラーが発生するまでの流れ
1\. app.pyに以下のコードを記述
“`python:app.py
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
import pytz

app = Flask(__na

元記事を表示

OTHERカテゴリの最新記事