- 1. Webdriver managerを使用していても、Google Chrome のバージョンをサポートしていないとメッセージが出た場合の対処方法
- 2. D社のコーディングテストを私の勝手に解いてみました!
- 3. functools.lru_cacheに有効期限があると便利だよね。
- 4. Macにpyenv/Python3/pipのインストール
- 5. py-cordのUI KITを使ってボタンやドロップダウンメニューを実装する方法
- 6. 【CentOS 7 / pyenv】サーバー環境のPythonバージョンアップデート
- 7. 初心者のためのPython Tip #1-Input編
- 8. 【Flask】url_forを使用して画像ファイルを表示する方法
- 9. django+nginx+uwsgiの環境構築
- 10. カリー化とは
- 11. pyplot
- 12. scikit-learn データセット分割の覚え書き
- 13. M1にpythonをインストールしてみた
- 14. Pythonのフレームワーク「Flask」を用いてHelloWolrdしてみた
- 15. ダミー変数化について
- 16. pdb.set_trace()のかわりにVSCodeでアタッチしてデバッグしたい
- 17. pythonを使ってAWSのログのインサイトを実行し、結果をCSVファイルで出力する
- 18. 詐欺メール検証用WEBによる検索program
- 19. Python べからず集
- 20. ロースペックPCでStableDiffusionを実装し実行時間を計測
Webdriver managerを使用していても、Google Chrome のバージョンをサポートしていないとメッセージが出た場合の対処方法
## ■記録した理由
>通常Google Chrome のバージョンはChromeDriverManager(「from webdriver_manager.chrome import ChromeDriverManager 」)をインポートしていれば自動で修正されるが、下記のような表示がTerminal上に出て、たまに修正されない場合がある。
>その場合は、手動で直す必要があるので記録した。![スクリーンショット 2022-09-10 8.32.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634708/ff245f52-29d7-15c6-afe2-63cecdc2ef44.png)
## ■対処方法
>①まず、chromedriverのホームページを開く
urlはここ https://pypi.org/project/chromedriver-binary/#historyhttps://pypi.org/project/chrome
D社のコーディングテストを私の勝手に解いてみました!
おはようございます!:sunrise_over_mountains:
私が住んでいるところは12日まで休みですが、13日にD社のコーディングテストがあるので…。
うーん…。無理矢理パソコンの前に座りました。:disappointed_relieved:
D社もコーディングテストの模試を公開しているので、そのうちの一つを解いてみたいと思います。# 問題
正方形の大きさの格子状の庭に、咲いた花または咲いていない花を植えました。
この庭の花が全部咲くのに何日かかるのか知りたいです。ある日に咲いた花の前後左右の4方向にある花は、次の日に花を咲かせます。現在の庭園の状態を盛り込んだ2次元リスト`garden`が与えられた時、すべての花が咲くのに何日かかるのか`return`するように`solution`関数を作成してください。
# 説明
現在の庭園の状態を盛り込んだ2次元リスト`garden`が`solution`関数のParameterとして与えられます。
– 庭園の一辺の長さは2以上100以下です。
– 庭園の状態を盛り込んだ2次元リスト`garden`の元素は`0`または
functools.lru_cacheに有効期限があると便利だよね。
個人的な備忘録メモです。
プロジェクト内で、DBで取得したデータってメモリないにキャッシュしておきたいなと思うことありませんか?
でも、DBの記録されているデータって常時変わる可能性があるし、いちいちサービスを止めれない。
じゃ、redisか、いやlru_cacheをうまく活用できないかと上司との擦った揉んだ(私は聞いていた)の上、
以下のページでどうやらできるらしい。https://www.rhoboro.com/2021/06/01/lru_cache-with-ttl.html
https://stackoverflow.com/questions/31771286/python-in-memory-cache-with-time-to-live
一番参考になったのは、ほぼろさんの記事ですね。ほぼろさんの記事ではstackoverflowの内容を保管してくれていてすごく勉強になりました。
それらを踏まえて完成したのは以下のコード
“`python
import functools
from datetime import datetime, timedelta
Macにpyenv/Python3/pipのインストール
# はじめに
python3と関連モジュールをインストールするためのメモです。
まずタイトルのpyenv/Python3/pipを説明します。## pyenvとは
Pythonのバージョンを管理するモジュールです。
これを使ってpythonをインストールします。## pythonとは
Pythonはプログラミング言語の一つです。
機械学習や人工知能などのライブラリも豊富です。## pipとは
Pythonのパッケージを管理するモジュールです。
Pythonと一緒によくインストールされます。# 実行環境
macOS Monterey 12.3
Homebrew 3.5.10# pyenvのインストール
まずはpyenvがインストールされているかの確認
“`
$ pyenv -v
zsh: command not found: pyenv
“`ないのでbrewコマンドでインストール
brewコマンドのインストールは[こちら](https://qiita.com/ukei2021/items/51cdc9fbd53428708fea)
“`
$ brew ins
py-cordのUI KITを使ってボタンやドロップダウンメニューを実装する方法
# はじめに
この記事ではPythonのDiscordでBOTを作成する為のライブラリの`py-cord`を利用したUIの作成について説明させていただいています。## 前提知識
主に`py-cord`でコマンドを実装したことがある方であればおおよそわかる内容かと思います。
もし、一度も実装した事がない場合は[こちらの記事](https://qiita.com/nikawamikan/items/1c253ce9b05d7edf1dd0)などを参考にして基本的なコマンドを実装してみてください。
python自体のクラス継承なども登場しますが、ある程度解説するので必須ではありません。## 環境
– python 3.10.6
– py-cord 2.1.3# もっとも簡単な方法
`py-cord`では簡潔な記述でボタンを実装するデコレータが用意されているため、最も簡単な実装では以下のようにボタンを実装することができます。
この情報はほとんど[Pycord公式のガイド](https://guide.pycord.dev/)となりますので、そちらで参考してもいいと思います。
【CentOS 7 / pyenv】サーバー環境のPythonバージョンアップデート
# はじめに
サーバー環境のPythonのバージョンをアップデートする時の流れをまとめました。
初心者向けにはなりますが、つまづいたところも書き留めているので、同じところで悩んでる方の助けになれば幸いです。# 環境
* CentOS 7
* pyenv# Pythonのバージョン変更の流れ
[1. 現在のPythonバージョンを確認](#1-現在のpythonバージョンを確認)
[2. pyenvでインストール可能なPythonバージョンを確認](#2-pyenvでインストール可能なpythonバージョンを確認)
[3. バージョンを指定してpythonをインストール](#3-バージョンを指定してpythonをインストール)
[4. pyenv内のpythonのバージョン切り替え](#4-pyenv内のpythonのバージョン切り替え)
[5. 現在のpythonバージョンを確認](#5-現在のpythonバージョンを確認)[つまずいたところの解決方法まとめ](#つまずいたところの解決方法まとめ)
## 1. 現在のPythonバージョンを確認
現在サーバーで参照されてい
初心者のためのPython Tip #1-Input編
# はじめに
初めまして、Qiitaでの初投稿です。
Pythonプログラミングをしている皆さんもご存知の簡単なテクニックを記載します。
初心者向けの説明ですがたまに普通のエンジニアの方でも紛らわしい部分も探っていきます。
(日本人ではないので、日本語の間違いは指摘してください。)## Input(入力)
入力はこれが基本ですよね。
“`Input.py
a = input() # Stringで入力
_list = input().split() # string type listで入力
a, b = input().split() # a, bで分けて入力
“`
**Q:** それならInt型で入力してもらうにはこうすれば良い?“`Int_wrong.py
A, B = int(input().split())
“`
**A:** **Int**型で入力を受けても、**list**型にすぐ変換できませんので、このコードは機能しません。
この時は**map**を使用します。**map**は基本的に適用する関数、使用できる資料のタイプを指定します。
“`
【Flask】url_forを使用して画像ファイルを表示する方法
Flaskのurl_forを使用して画像を表示する方法を紹介します。
## ディレクトリ構成
今回例として使用するディレクトリ構成は以下のようになってます。
“`bash
flask$ tree .
.
├── __pycache__
│ └── func.cpython-310.pyc
├── main.py
├── static
│ ├── images
│ │ ├── default.png
│ │ ├── home.png
│ │ └── logo.png
│ ├── js
│ └── style
│ └── style.css
└── templates
├── index.html
└── layout.html9 directories, 18 files
“`static/images/default.pngファイルを表示するやり方を記載します。
## static配下を使用するためには
今回、cssファイルやjsファイル、imageファイルはstaticディレクトリ配下に入れてい
django+nginx+uwsgiの環境構築
本稿はAWS EC2環境にて以下構成でdjango、nginx、uwsgiによる開発環境を構築する際の私的メモです。
## 構成
| 名称 | バージョン | 用途 | その他 |
| ———— | ———- | ———————————— | ————— |
| Amazon Linux | 2 | OS | |
| nginx | 1.20.0 | Webサーバ | |
| uwsgi | 2.0.20 | APサーバ | |
| pyenv
カリー化とは
# 意味
– 関数を返す関数を作り、プログラムの共通化を図る。
– 言語に関係なく共通する概念であるが、ここではtypescriptで説明します。# 例文
“`typescript:typescript
const add = (x:number) => (y:number) => x + y
const add1 = add(1)
const result = add1(2) // 3
“`# 説明
関数addは引数xを受け取ると、`(y:number) => x + y`を返す関数。
add関数の引数として1を入れると、`(y:number) => 1 + y`の返すようになる。
返された関数の引数yに対して2を入れると、`(2) => 1 + 2`が成立され、3を返す。# メリット
– 共通化によってバグを防ぐことができる。
– まとまった処理を分割することによって、複雑度を下げつことができる。# 例文
“`typescript:typescript
const add = (x:number, y: number) => x + y
add(1, 2)
pyplot
検索するのつかれたんで、自分で学んだものを整理しておきます。
【目次】
~matplotlibで軸が見切れるときの対処法~
◯Matplotlibでx軸のラベルが見切れるときの対処
◯Matplotlibでx軸見切れなくする
◯subplot間の間隔調整◯Matplotlibでx軸のラベルが見切れるときの対処
引用:https://qiita.com/78910jqk/items/e8bce993081c384afdba◯見切れなくする
グラフの描写範囲の設定を変えることでx軸のラベルを見切れないようにできる。
グラフの描写範囲の下端の設定は`matplotlib.pyolot.rcParams[‘figure.subplot.bottom’]`に格納されている。デフォルトだと0.11になっていて、下から11%の領域までグラフが書かれるため、x軸のラベルが入りきらない。これを15%(0.15)くらいに変更すればいい。
~~~python:qiita.rb
plt.rcParams[‘font.size’] = 13
#この2行を書いておく
###################
scikit-learn データセット分割の覚え書き
# この記事の内容
scikit-learnに付属しているデータセット分割法の覚え書きです。– ホールドアウト法
– K-分割交差検証(KFold)
– 層化K-分割交差検証(Stratified KFold)
– グループ付き交差検証(Group KFold)
– 時系列データ分割(Time Series Split)# データセットのインポート
scikit learnのデータセットとして利用できるiris datasetを使用します。
“`python
import pandas as pd
from sklearn.datasets import load_irisiris = load_iris()
df_iris = pd.DataFrame(data=iris.data,columns=iris.feature_names)“`
# ホールドアウト法
単純にデータセットを訓練データとテストデータに分割します。(デフォルト=7:3)
“`python
from sklearn.model_selection import train_test_spli
M1にpythonをインストールしてみた
## はじめに
今回の投稿がQiitaの初めてなので、markdown記法に慣れていないので申し訳ございません。
今後、勉強したことや困ったことを投稿していきますので、よろしくお願いします。## pythonを入れる方法
今後、競技プログラミングの方でpythonを使って行なっていきたいと思ったのですが、先日いきなりpythonの方でやろうとしたら、M1にはpythonが元々入っていない?という状態に気づいて、急遽Javaの方でやりました。
そのため、今回の記事はM1にpython環境を入れるのに参考にした記事を貼っておこうと思います。
[参考記事](https://hitori-sekai.com/python/mac-python-install/)
※いつもの感覚でバージョンを確認するときに`python -v`と入力するとpythonが起動してしまいました。原因としては`-v`が大文字の`-V`でないといけないことを知りませんでした。## 最後に
最近、macを買い替えてM1チップ搭載のMacBook Airにしたのですが、友人に聞いたところpython以外にもdock
Pythonのフレームワーク「Flask」を用いてHelloWolrdしてみた
# 概要
pythonでのWebアプリ開発の経験がなかったため、勉強としてFlaskフレームワークを使用していろいろ作成を行ってみました。
この記事では、Hello Worldレベルの最低限の実装となっています。# Flaskとは
[Flask Documentation](https://flask.palletsprojects.com/en/2.2.x/)
[Flask 日本語Documentation](https://msiz07-flask-docs-ja.readthedocs.io/ja/latest/)Flaskは、Python製のマイクロWebフレームワークです。
__マイクロ=コアとなる機能を保ちつつ拡張性を持っている__ という解釈です。
拡張機能を多く持ち、必要に応じて追加することで自由度が高いです。
また、最低限の機能を使うための学習コストが低く、誰にでもすぐに利用することができます。開発に必要な多くの機能が実装されているという点では、[Django](https://www.djangoproject.com/)の方がフルスタックフレームワー
ダミー変数化について
# Pythonでのダミー変数化
ダミー変数化とは・・・
日付や時刻などの文字列(カテゴリ変数)を数値データに変換すること。
Pythonでは一般的にPandasの関数get_dummies()を用いてダミー変数化される。また、one-hot encodingとして出力される。
## one-hot encoding
文字列のカテゴリの変数に応じてカラムを用意し、0,1に置き換える。
ただし、欠点としてカテゴリの変数が多い場合はデータが膨大になってしまう。## label encoding
カテゴリの変数の種類に応じず、1つの列で収まるデータを作成する。
使用するには、sklearnのLabelEncoder()を利用する。その後fitでデータを読み込み、transformで変換を実施する。
pdb.set_trace()のかわりにVSCodeでアタッチしてデバッグしたい
# 目的
`import pdb; pdb.set_trace();`や`breakpoint()`はちょっとしたデバッグの時に便利だが、VSCodeでデバッグしたい時がある。
# 環境
Windows10、Python 3.10.4、VSCode 1.70.2(2022-08-16T05:35:13.448Z)
# 準備
`debugpy`があること。なければpipか何かで導入する。
“`
> pip list |findstr debugpy
debugpy 1.6.3
“``import pdb; pdb.set_trace();`の代わりになるものを書く。
ブレークさせたいところに`break_here()`と書く。“`python:debug_util.py
import sys
import debugpydef _wait_debugger():
port = 5678
debugpy.listen(port)
print(f”debugpy {port=}”, file=sys.stderr)
pythonを使ってAWSのログのインサイトを実行し、結果をCSVファイルで出力する
## 背景、目的
AWS環境を使用したWebサイトを提供しており、日次の運用としてエラー有無、内容の調査を行います。
エラーが出ている場合(基本はなにかしらのエラーが出ている)は、どのようなエラーであるか、対応が必要であるかを判断します。その前段のエラー有無を取得するためにCloudWatch Logsを使用しているのですが、毎回以下の操作を行います。
– ブラウザを開いてコンソールへログイン
– CloudWatchを開いてログのインサイトを選択
– 対象日時を範囲選択
– 保存済みのクエリから対象を選択
– 実行して結果が出るのを待つ
– 結果をダウンロード「保存済みのクエリから対象を選択」以降は複数回実行します。
この後にエラー有無と対応要否を判断します。毎日やる作業と考えると結構しんどいです。
## 環境
| key | value |
| ——– | ———— |
| OS | mac 11.6.1 |
| language | Python 3.9.1 |
| AWS CLI | 2.7
詐欺メール検証用WEBによる検索program
# 実行環境
>・macOS Monterey バージョン12.4
・ python3.7.7
・ selenium 3.141.0
・ webDriver GoogleChrome chromedriver version for 104.0.5112
>
# このプログラムを組んだ理由
>最近、Amazonを騙って下のようなメールがちょくちょく来るようになった。
「Amazon.com」とあるから最初ドキッとしたけど、差出人の **「Amazon.com」部分を右クリック -「アドレスをコピー」をクリック - テキストエディットに貼り付け** てみると、http://amazon@member-amazon.shopとなっていた。(99%怪しい)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634708/ed044ab1-0a94-3eb3-2050-7bca43fc6fcf.png)
>でも、**amazon.shop
Python べからず集
# はじめに
## クレジット
@apple502j さんの [この記事](https://qiita.com/apple502j/items/898eb8149f1f40ac1da4) を見て Python 版を作ろうと思いました!
ありがとうございます!## 参考にしたもの
[PEP 8 ドキュメントの日本語版](https://pep8-ja.readthedocs.io/ja/latest/)# 何するの?
「これ Python でやんない方がいいお!」的な書き方を紹介します。
ささっと紹介するだけですが、だいたい分かると思います。# じゃあやろう!
## 1. `import` 編
### 1-1. 1 行でまとめるべからず
普通は `import` 文は行を分けたほうがいいです:
“`python:イイね
import os
import sys
“`
“`python:ダメだね
import os, sys
“`でも、次のやり方は良い例です:
“`python:イイね
from subprocess import Popen, PIPE
`
ロースペックPCでStableDiffusionを実装し実行時間を計測
# 挨拶
初めまして、日本システム開発株式会社の鈴木です。
技術者として更なる向上を目指すためQiitaアウトプットをする取り組みを行っています。
技術者としては経験が浅く発信内容はとにかく試したものの覚書になります。
本稿はロースペックPCでStableDiffusionを導入してみた際の手順です。# 環境(マシンスペック)
OS: Windows 10
CPU: Ryzen 5 3500U
GPU: AMD Radeon Vega8 Graphics VRAM 2GB(オンボード)
メモリー: 8GBPython : 3.9.13
diffusers : 0.2.4
torch : 1.12.1
transformers : 4.21.2## 目的
StableDiffusionの資料を探しているとCUDAを使用した環境の構築が多いものの一応動作させること自体はCUDAなしでもできそうだったためその環境を構築してみます。
## Python仮想環境設定
今回は実用的な速度にならないことが予想できていたため後から削除しやすいよう専用の仮想環境を用意します。
“`:コマン