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

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

oauthlibでGoogle認証を実装する方法

## はじめに
検索したけど見つからなかったので、備忘録として。

## レシピ
* Python >= 3.7
* oauthlib >= 3.2.0

### Code

必要というか、メインの部分だけ。

“`python
import os
import requests
from typing import Optional
from requests_oauthlib import OAuth2Session

class GoogleAuthService:
GOOGLE_CLIENT_ID = os.getenv(“GOOGLE_CLIENT_ID”)
GOOGLE_CLIENT_SECRET = os.getenv(“GOOGLE_CLIENT_SECRET”)
OAUTH_URL = “https://accounts.google.com/o/oauth2/auth”
TOKEN_URL = “https://oauth2.googleapis.com/token”
USER_INFO_URL = “https://www.googleapi

元記事を表示

[Python] if文、input関数、辞書

今回の成果

今日は、音楽で使うコードの構成音を入力すると「これは◯コードです。」と出力するプログラミングを書きながら、pythonのif文,input関数,コンテナ(辞書)について学びました。

環境

OS:Mac iOS
Pythonのバージョン:3.9.4

1. とりあえずif文で地道に書く

どうやって作ろうか考えたときに、膨大な量のif文を書くことになるのを承知の上で まず、if文で書いてみることを思いつきました。そこで書いたのが↓です。

“`
x = “do,mi,so” #コードの構成音を入力する
if x == “do,mi,so”:
print(“the cord is C”)
if x == “do,mi,so,si”:
print(“the cord is CM7”)
if x == “do,mi,so,sib”:
print(“the cord is C7”)
if x == “do,mi,so,ra”:
print(“the cord is C6”

元記事を表示

Azure Functions の Python を GitHub CI/CD でデプロイする方法

Azure Function の Python は Azure Portal でコードを編集することができないので、そのひとつの回避策として、GitHub から Azure Functions へ CI/CD のパイプラインを作成し、GitHub のコード編集機能を使用すれば Web ブラウザでコードをすることができます。

# Visual Studio Code で Azure Functions を作成する
まずは VS Code で Azure Functions を作成します。VS Code に Python や Function の拡張機能をインストールする必要がありますが、今回はその手順は割愛します。詳しくはこちらです。
https://docs.microsoft.com/ja-jp/learn/modules/python-install-vscode/
今回は PythonFunc というフォルダに HttpTrigger1 という関数を作成します。
![スクリーンショット 2022-04-05 21.25.00.png](https://qiita-image-s

元記事を表示

python 配列を作る

## はじめに
pythonの配列について学ぶ
### 教科書
https://docs.python.org/ja/3.9/tutorial/introduction.html
## ゴール
pythonで配列を作る。作った配列から文字を抜き出す
## 実施内容
“`python:配列を作る
>>> squeres = [1,3,5,7,9]
>>> squares
“`
`[1,3,5,7,9]`と出力される

“`python:配列の一番左の値を抜き取る
>>> squares[0]
“`
0が一番左の数値を抜き取る
“`python:配列に配列を足す
>>> squares + [‘a’,’b’,’c’,’d’]
“`
`[1,3,5,7,9,’a’,’b’,’c’,’d’]`と出力される

### メモ
文字を配列に入れるときは”で囲む。忘れない

元記事を表示

【備忘録】Django __str__ returned non-string (type int)エラーについて

# 経緯
Django admin画面よりDBデータを削除しようとした際にタイトルのエラーが発生。
少しハマったため備忘録として残しておく。

# 対応した内容
models.pyを確認する。
~~~python:models.py
class Test(models.Model):
history_id = models.ForeignKey(Billing, verbose_name=”請求書番号”)
number = models.IntegerField(verbose_name=”数値”)
def __str__(self):
return self.number
~~~
注目するのはreturn~部分。returnで返した値をDjango admin画面で使用する。
ここでinteger型を使用していたためにタイトルのエラーが発生していたよう。
なので、下記に変更したことで解消された。
~~~python:models.py
def __str__(self):
return str(self.number )

元記事を表示

Dockerを使ってUbuntuに自然言語処理環境を構築しよう

# この記事の内容

本記事ではdockerを使ってゼロからUbuntu環境を構築し、Pythonのインストール方法から自然言語処理を適用するまでの基本的な環境構築方法を説明していきます。

1. dockerを使ってubuntu環境の構築
2. 構築した環境にpythonのインストール
3. 言語処理環境の構築

なお、前提としてdockerがインストールされていることとします。

## 1. docker を使ってubuntu環境の構築

まずはdockerでubuntu環境を構築します。

“`
docker run –name ml -v /Users/ユーザー名/Documents:/root -it -p 8888:8888 ubuntu bash
“`

–nameでmlという名前をつけています。
-vでボリュームのマウントをします。:の前がローカルのパスで、後がDocker内部のパスになります。
-pでポートを設定します。後にJupyterを使う場合はデフォルトのポートが8888なので8888にしておくことをお勧めします。別のポート番号を設定しても可能ですが

元記事を表示

PythonでTomlを読み込もう!

# TOMLファイルを用意

👇 以下のページから

📖 [TOML](https://toml.io/en/)

👇 コピーして、練習用に テキストファイルを作成

📄`example.toml`:

“`toml
# This is a TOML document

title = “TOML Example”

[owner]
name = “Tom Preston-Werner”
dob = 1979-05-27T07:32:00-08:00

[database]
enabled = true
ports = [8000, 8001, 8002]
data = [[“delta”, “phi”], [3.14]]
temp_targets = { cpu = 79.5, case = 72.0 }

[servers]

[servers.alpha]
ip = “10.0.0.1”
role = “frontend”

[servers.beta]
ip = “10.0.0.2”
role = “backend”
“`

# pytomlpp をインスト

元記事を表示

AIで(毒)キノコを判別する試み

# はじめに
プログラミング未経験者ですが、このたびAidemyさんの講習を受講する機会があり、課題として機械学習を使ったアプリとブログの作成をすることになりました。同じくAidemyさんの課題としてCNN(Convolutional Neural Network)を用いた野菜識別に取り組まれた方のブログを拝見し、私はCNNでキノコを判別する試みを行いました。野山に生えるキノコを見つけたとき、食べられるのか食べられないのか判別できるアプリがあれば…と思ったのがきっかけです。至らぬ点ばかりと思いますが、ご容赦下さい。

:::note
参考ブログ:
CNN画像認識で 野菜識別
https://qiita.com/a_tonbo/items/0696fd3fcbdeed4e64cf
:::

## 1. 学習対象のキノコ
**毒キノコ:クサウラベニタケ・ツキヨタケ・テングタケ**
**食用キノコ:シイタケ・ヒラタケ・タマゴタケ**

厚生労働省のホームページで、食用と間違えやすいため注意喚起されている毒キノコのクサウラベニタケとツキヨタケを選び、それと間違えやすいシイタケとヒラタケを対象

元記事を表示

【macOS12.3.1】pip install pyodbcで”src/pyodbc.h:56:10: fatal error: ‘sql.h’ file not found”エラー対応備忘録

# 現象
“`pip install pyodbc“`で以下のエラーでインストールできず.
“`zsh:zsh
$ pip install pyodbc
Collecting pyodbc
Using cached pyodbc-4.0.32.tar.gz (280 kB)
Preparing metadata (setup.py) … done
Using legacy ‘setup.py install’ for pyodbc, since package ‘wheel’ is not installed.
Installing collected packages: pyodbc
Running setup.py install for pyodbc … error
error: subprocess-exited-with-error

× Running setup.py install for pyodbc did not run successfully.
│ exit code: 1
╰─> [14 lines of out

元記事を表示

Robot framework – python in mac

# Outline
E2E test automationのsolutionに、robot frameworkがある。
robot frameworkの特徴として、以下のようなものがある
– 自然言語に近い記述で処理を記述できる(キーワード駆動)
– 複雑なプログラミングなしで記述できる
– レポーティング機能がデフォルトで用意されている

今回、robot framework環境を構築し、簡単なプログラムを実行して体験してみる。

尚、BigSur 11.6.1で構築した

| Item | Version | Note |
|:———–|:————|:————-|
| Mac | BigSur 11.6.1 | |
| Python | 3.8.9 | |
| chrome | 100.0.4896.60 | |

# Install Python

macはdefaultでPython2.7がinstallされている。
しかし、最新にして動かしたいので、Python3をinstallする

元記事を表示

MinMaxScalerの注意点

データ正規化とは、最小値0、最大値1にすること。下記コードのように行う。注意点は、訓練データとテストデータで違うコードを使用すること。

from sklearn.preprocessing import MinMaxScaler

sc=MinMaxScaler()

train_sc=sc.fit_transform(train)
test_sc=sc.transform(test)

訓練データにはfit_transformを使用する
テストデータにはtransformを使用する

元記事を表示

python環境構築まとめ

# 備忘録です.
python環境がごちゃごちゃしてたので、色々消して以下にまとめた.(2022.4.5)
環境:MacBookPro macOS 12.3.1(intelchip)

# 要約
Homebrew + pyenvでpythonバージョン管理 + venvでプロジェクトごとにパッケージ管理

## 1.Homebrewインストール
ここからインストール

https://brew.sh/

## 2.pyenvインストール+環境設定
pyenvのインストール
“`zsh:zsh
$ brew install pyenv
“`
PATHを通す.
この3行目がないと、Macにデフォルトで入ってるPythonが呼び出されうまくいかなかった.
これらの意味は後程調べて記載予定.
“`:~/.zshrc
export PYENV_ROOT=”$HOME/.pyenv”
export PATH=”$PYENV_ROOT/bin:$PATH”
eval “$(pyenv init –path)”
eval “$(pyenv init -)”
“`
~/.zshrcは”ホームデ

元記事を表示

Google Calendar APIを使って月末申請の交通費を自動計算してみた

# 目的
 だんだんと在宅勤務にも慣れてきましたが、週に何日かは出社して働いています。弊社は出社日数分×往復の交通費を月末に申請するスタイルなのですが、今月何日出社したっけ?片道の交通費っていくらだっけ?と都度計算するのは面倒ですよね。(え、そんなことはない?)

 そこで今回、Google Calendar APIとPythonを使って交通費の自動計算するプログラムを作ってみました。

計算するための条件として、出社日はGoogle Calendarに「出社」と記載するとしています。↓こんな感じ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2298484/a0c35030-3a6e-34c7-0f26-ab9fc1ba3e07.png)

# 手順

1. Google Calendar APIの有効化や認証情報の取得。
a. こちらを参考に設定した。https://qiita.com/lobmto/items/c1a220a12ec9c1fad560
b. 設定後のフォルダ

元記事を表示

強化学習 Q-learningで迷路探索アルゴリズム

強化学習のQ-learningで迷路探索を行います。
Pythonのソースコードはこちら。

“`python
import numpy as np
import matplotlib.pyplot as plt
import copy

def main():
global is_end_episode
global rewards

for episode in range(NB_EPISODE):
episode_reward = []
while(is_end_episode == False):
action = act_func()
state_return, reward, is_end_episode = step_func(action)
observe_func(state_return, reward)
episode_reward.append(reward)
rewards.append(np.sum(episode_reward))
state_return2 = reset_state_func()
ob

元記事を表示

アルバイト先のテレワーク申請の集計を自動化した話

## はじめに
私のアルバイト先ではテレワーク OK です。アルバイトのおうち作業に時給がつくのは嬉しいですね。テレワークをすると、名前、日付、曜日、時間帯、所要時間、作業内容を Slack に報告します。例えば、
“`:申請内容の例
山田太郎、田中花子
1月1日
水曜日
19:00~20:31
1時間30分
シフト調整
“`
みたいな感じです。これを手作業で転記し、社員さんに報告します。私の後輩が担当となって、集計を毎週してくれていました。ただ正直言って手作業の転記は無駄で面白くありません。なんとかしてやりたいと思い、Python で自動化してみました。

## 求められていたこと
ただ転記するだけでなく、申請側のミスを修正することもありました。例えば、
– 日付と曜日が一致していない
– 19:00~20:31 と書くべきところを 19:00~20:30 と書いている
– 1時間30分と書くべきところを1時間半と書いている etc.

といったミス。また、社員さんとしては集計結果を Excel で送ってほしいとのこと。加えて、この自動集計ファイルは誰もが扱えるようなも

元記事を表示

.to_datetimeを使用して、 値をdatetime型の秒単位に変形させる方法

![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1863223/15b00ab4-0562-c3b0-22ab-e050d3ae96d3.png)

[code]
train_df[‘step’]=pd.to_datetime(train_df[‘step’],format=’%S’).dt.time

train_df.set_index(‘step’,inplace=True)

train_df

元記事を表示

numpyのインストール

Raspberry Pi 3B+にPythonのnumpyのインストールで戸惑ったのでメモに残します。

“`
$ pip3 install numpy –upgrade
“`

を実行したら、

“`Running setup.py bdist_wheel for numpy …“`

が終わらなくなった。
見た感じはフリーズしたような状態に・・・。
しかし、このまま10分程度待ったら正常に終了しました。
短気な自分はフリーズしたのかと思い、何度もやり直してしまった。
皆様も気をつけて。

元記事を表示

Selenium4のEdgedriverでデフォルトのダウンロードフォルダを変更する

# はじめに
以前、`msedge_selenium_tools`を使うやり方の記事を書いたけど、selenium4でもできるらしいのでそちらに乗り換え。

# 準備
## Edgedriverをダウンロード
PCにインストールされてるEdgeに対応するバージョンのEdgedriverをダウンロードしておく
https://developer.microsoft.com/ja-jp/microsoft-edge/tools/webdriver/

## ライブラリのインポート
“`
pip install selenium
“`
※以下はMicrosoft公式のマニュアル。日本語翻訳は機械翻訳がアレなので英語版で読むのを推奨
https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium/?tabs=python

# やり方
`experimenal_options`に辞書型で色々変数が入っているみたいっぽいので、その値を上書きしてやる形で指定するっぽい。
“`py
#%%
#ライブラリのインポート
fro

元記事を表示

AIトレードシステムのMT4埋め込み(4)

https://qiita.com/EasyCording/items/af9aa9fe5d1371f45433

Jupyterでアプリ開発をするのも、そろそろ限界になってきたので、少しファイルを分割、再編している。
FastAPIのフォルダ体系について、プラクティス的なものがあり、これに見習ってみる。

https://camillovisini.com/article/abstracting-fastapi-services/

同時にplatumlの使用方法を習得 

https://plantuml.com/ja/

# FastAPIのアプリケーション

フォルダの構成はこんな感じ・・・

“`plantuml
@startwbs
* app
** config
*** database session
** models
*** sqlarchemy model
** routers
*** api routes
** schemas
*** pydantic models
** services
*** business login
** utils
*** serv

元記事を表示

pythonでdiscordを運用するテンプレートcogsの利用

はじめに

こちらを参照するとより正確です

https://discordpy.readthedocs.io/ja/latest/intro.html

インストール

discord.pyのインストール

以下のどちらかでインストールします。
“`ruby:github
pip install -U discord.py
python -m pip install -U discord.py
“`
詳しくは以下を参照
https://discordpy.readthedocs.io/ja/latest/intro.html

discord-ext-botのインストール

以下のどちらかでインストールします。

“`ruby:github
pip install discord-ext-bot
python -m pip install dis

元記事を表示

OTHERカテゴリの最新記事