Python3関連のことを調べてみた2022年02月20日

Python3関連のことを調べてみた2022年02月20日

【Lightsail】Flaskアプリケーションをデプロイ

# 1. はじめに

Lightsailのコンテナサービスを利用します。

Flaskアプリケーションの作成に関しては、前回の記事で記述しました(https://qiita.com/shiv76e2/items/cbb8e553ecd6c6846672)

ディレクトリ構成
“`
Containers/
├ nginx/
│ ├ Dockerfile
│ └ nginx.conf
└ uwsgi/
├ app.py
├ Dockerfile
├ requirements.txt
└ uwsgi.ini
“`
# 1. LightsailにContainerService作成
AWSの公式チュートリアルをご参照ください(https://youtu.be/eOqlLa6paCI)

# 2. Nginxイメージの作成
ReverseProxyとして、ユーザーからのリクエストを受け取って、uWSGIサーバーへ返す役割をします。

“`Dockerfile:Dockerfile
FROM nginx

元記事を表示

Django ランダムかつ有効期限のあるURLを生成し、上位者に承認してもらうための機能(1次承認)

## 環境
Windows 11 Home
Python 3.10.2
Django 4.0.2
venv利用あり
(PyPI)
APScheduler==3.8.1 (第2回、第3回で使用。今回は使用しない)

## 関連記事
Django 第1回:[Django Custom User Model の作成](https://qiita.com/startours777/items/706d38e712b0c737a16a)
Django 第2回:[Django 初回ログイン時にパスワード変更を強制する](https://qiita.com/startours777/items/28db625a9bb81a36d4ad)
Django 第3回:[Django 一定期間パスワードを変更していないユーザにパスワード変更を強制する](https://qiita.com/startours777/items/d550ca9b67cea4408a44)
Django 第4回:[Django ランダムかつ有効期間ありのURLを生成し、上位者に承認してもらうための機能(アカウント作成1次承認)](

元記事を表示

Python3: Cognito から Access Token を取得

AWS の Cognito から JWT Access Token を取得する方法です。
AuthFlow は ADMIN_USER_PASSWORD_AUTH です。
次のページを参考にしました。
[PythonでAWS Cognito認証](https://qiita.com/jp_ibis/items/4fffb3c924504f0ce6fb)

“`py:get_token.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# get_token.py
#
# Feb/19/2022
#
# ——————————————————————
import sys
import os
import boto3
from dotenv import load_dotenv
# ——————————————————————
def cognito_auth(p

元記事を表示

kivyMDチュートリアル其の肆什玖 Behaviors – Touch篇

ハロー、Qiita!いかがお過ごしでしょうか。

今週は特に技術的なニュースはあまりなかった気がしていますが、オリンピックが
世間を賑わせていますね。そうなのか?ということ仰られる方もいるかと思いますが、
否定はしなく、どちらかというと私もそのような思いが近いです(どっちだ)。

冬のスポーツはあまり馴染みがないので、ニュースだけを見ていますが、みなさん
の推しのスポーツはありますでしょうか。

話はKivyMDに戻り、とうとう今週でエピソード1は終わりにしたいと思います。(なんそれ)
一旦はエピソード1はBehaviors章を区切りにしたいと思います。ver.1.0ももう
そろそろ出るじゃないかと思いますが、エピソード2は1.0が出たときに始動したい
と思います。どんなことやるかはまとめに書こうかなと。

今日については先週からの続きで、Touch篇となります。

ではさっそくですが、今日も元気にレッツラゴ。

## Touch

なにやら冒頭に以下のような記載がありますね。

> Provides easy access to events.

なにやらおぉ、と言ってしまいそうな英

元記事を表示

【Flask】Hello World(uWSGI + Ubuntu)

# はじめに
勉強でflaskを触ったときの、hello worldまでの手順をまとめました。
* WSL2環境を汚したくなかった&勉強のためvenvを利用
* この記事のfile/folderはすべて同じディレクトリ

venv: 同じシステム上で、独立した複数のpython実行環境を生成するためのツール
uWSGI: Pythonを実行するためのアプリケーションサーバー。Flaskにも組み込みのアプリケーションサーバーがあるが、そちらはSingleThreadなので一度に一つのrequestしか捌けないため、ローカルで開発する際もuWSGIを使ったほうが好ましい。

参考にしたサイト
https://riptutorial.com/flask/example/16286/using-uwsgi-to-run-a-flask-application

# 1. venvで仮想Python環境構築
“`
$sudo apt update
$sudo apt upgrade
“`

必要なpackageのinstall
“`
$sudo apt install python3-

元記事を表示

テスト1

“`
import openpyxl
from datetime import datetime as dt

”’
エクセルのシート名にテーブル名を設定
ヘッダ列にカラム名を設定
ファイル名は任意
”’

def calc(ex):
if isinstance(ex, int):
return str(ex)
elif (ex is None) or (ex == ”):
return “””
elif ex in func_str_list:
return str(ex)
else:
return “‘” + str(ex) + “‘”

func_str_list = [‘CURRENT_TIMESTAMP’, ‘NULL’]
# TODO 適宜修正
file_path = ‘input_xlsx_path’
output_path = ‘output_sql_path’
wb = openpyxl.load_workbook(filename=file_path)
ta

元記事を表示

python websocketのパッケージ整理

# 目的
似て非なるパッケージが複数あって混乱するので整理したい。
websocket系とthread

# Pypi : Python Package Index
https://pypi.org/

# windows10 ファイアウォール
外部への線を抜いてローカルでファイアウォールを切る。

https://pc-karuma.net/windows-10-firewall-enable-disable/#Windows_%E3%83%95%E3%82%A1%E3%82%A4%E3%82%A2%E3%82%A6%E3%82%A9%E3%83%BC%E3%83%AB%E3%82%92%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B

ファイアウォールを有効にするならば、ポートを開ける
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555658/68257047-39c0-a7fb-de9c-6bc71892435d.png)

# ラズパイ

元記事を表示

Python time.sleepのsleepできるのは最小何秒?

# 結論

**0.001秒**

いちおう、スリープ時間は最小になったが、希望通りのスリープはしてくれない

# 検証

0.000~0.009のスリープ時間の計測

“`python
def minimam_sleep(milliseconds):
seconds = 0.001 * milliseconds
start_time = time.time()
time.sleep(seconds)
stop_time = time.time()
time_difference = stop_time – start_time
return time_difference

for milliseconds in range(10):
print(round(milliseconds*0.001,3), minimam_sleep(milliseconds))
“`

“`
0.0 0.0
0.001 0.005999088287353516
0.002 0.016000986099243164
0.003 0

元記事を表示

Linux上にPython+Selenium+Chromeの動作環境を構築する

#はじめに
SeleniumとはWebブラウザの操作を自動化できるフレームワークのことです。
本記事ではSeleniumを使う環境の一つとして、Linux上にPython+Selenium+Chromeの環境を構築する手順を紹介します。
#構成
今回使うLinux環境は、以下のようなインスタンスをAWSにて作成しました。

|項目|設定値|
|—|—|
|プラットフォーム|Amazon Linux|
|インスタンスタイプ|t2.micro|

#環境構築
以降のコマンドはデフォルトのユーザ(ec2-user)を使った場合のものとなってます。
###Python3のインストール
まず、yumのアップデートを実行します。

“`
$ sudo yum update
“`
yumのアップデートが完了後、Python3のインストールを行います。
Python3をインストール時に合わせてpip3もインストールされます。

“`
$ sudo yum install python3
“`
なお、Amazon Linuxではデフォルトで`python`コマンドにはPython2の方が

元記事を表示

レコメンド指標でよく見るMAP@kとは

## 概要
– レコメンドでよく使われるメトリクスである**Mean Average Precision (MAP)**について解説する
– MAPについて説明する前にまず前提条件として**Precision@k (P@k)**、**Average Precision @k (AP@k)** についても説明する

## 問題設定
– 正解を予測して並べた5個 (k=5)のデータのうち何個正解できたかを考える
– 例えば5個並べた商品のうち、実際にクリックされたのはどれだったか

– 以下の例だと1番目と4番目を正解したことになる
– これを評価するメトリクスを考えたい

スクリーンショット 2022-02-17 0.27.56.png

– 単純に5個中何個正解できたかを考えてみる (2/5)
–  でも同

元記事を表示

iptablesファイルに書いたドメインを、cronで定期的に解決しiptablesに反映する

# 本記事について

本記事は、`/etc/sysconfig/iptables`にドメイン名を直接書いたものを、iptablesに定期的に反映させる方法について私見を述べたものです。

### 環境

Amazon Linux 2
Python3

# 背景

### iptablesの罠

以下のように、iptablesをドメイン名で記載している箇所がある。
変更する際は`sudo vi /etc/sysconfig/iptables`コマンドで直接編集し`sudo service iptables restart`で反映させる運用となっている。

“`text:/etc/sysconfig/iptables
-A OUTPUT -p tcp -d dev.**.***.net -m owner –uid-owner userName -j ACCEPT
-A OUTPUT -p tcp -d prd.**.***.net -m owner –uid-owner userName -j ACCEPT
-A OUTPUT -p tcp -d ************.**.ne

元記事を表示

サンプル用クラスタリング用のデータを作成しよう

# datasets.make_blobsでクラスタリング用のデータを作成
sklearn.datasetsのmake_blobs関数をインポート
from sklearn.datasets import make_blobs

Xには1つのプロットの(x,y)が、Yにはそのプロットの所属するクラスター番号が入る
X,Y = make_blobs(n_samples=150, # データ点の総数
n_features=2, # 特徴量(次元数)の指定 default:2
centers=3, # クラスター数
cluster_std=0.5, # クラスタ内の標準偏差
shuffle=True, # サンプルをシャッフル
random_state=0) # 乱数生成器の状態を指定

元記事を表示

Prophetを使ってみた(予測)

前回はAnacondaのインストールからjupyter notebookが起動するところまで実施しました。今回はProphetを使った時系列データの予測をやってみたいと思います。

前回の記事はこちらから

https://qiita.com/nw-engineer/items/d167e9e193124bacfb96

## 1. データダウンロード

下記サイトより為替レート(日本円からドル)のグラフをダウンロードします。

https://fred.stlouisfed.org/series/DEXJPUS

ダウンロードしたデータは作成したDataディレクトリに保存しておきます。

## 2. 事前準備
ここからはJupyter notebook上での作業となります。必要となるライブラリをインポートしておきます。

“`bash
import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
“`

CSVデータを読み込んで6行分表示してみます。

“`bas

元記事を表示

Prophetを使ってみた(事前準備)

Prophetを利用した時系列データの予測などやってみたので、備忘録も兼ねて

## 1. 環境
– OS: CentOS 7.9
– kernel: 3.10.0-1160.53.1.el7.x86_64
– Anaconda: 3-5.3.1
– jupyter: 4.4.0

## 2. OS最新化&ツールインストール
いつものようにOSは最新化します。また開発ツールパッケージも入れましょう。

“`bash
yum update -y
reboot

yum groupinstall ‘Development Tools’ -y
yum install wget -y
“`

## 3. Anacondaインストール
下記サイトからAnaconda(Linuxインストール用スクリプト)をダウンロードしてインストールします。

https://repo.anaconda.com/

wgetでダウンロードし、実行します。

“`bash
wget https://repo.anaconda.com/archive/Anaconda3-5.3.1-Linux-x86_64.s

元記事を表示

djangoアプリをAWSでデプロイする時にハマったこと

djangoアプリをAWSでデプロイする時にハマったことを個人用にメモ。

【参考】
https://qiita.com/Bashi50/items/d5bc47eeb9668304aaa2
https://qiita.com/Bashi50/items/db0b6b3343d51e0fc598
https://zenn.dev/ryo_t/articles/71e4ee16d76274

【メモ】
■gunicornを起動してもソケットファイルが作成されなかった。
 原因⓵:ソケットファイルを作成するフォルダに書き込み権限を付与していなかった。
 原因⓶:「gunicorn.service」に誤字があった。
 原因③:wsgyファイルがあるアプリフォルダ名とプロジェクトフォルダ名を違う名称にしていたため、wsgyファイルパスが間違っていた。
 原因④:「Procfile」ファイルを配置していた。

■Postリクエストする時に403エラーが発生する。
 原因:自分のブラウザ設定でcookieをブロックしていた。

元記事を表示

Pythonを使ってYoutubeのプレイリストを開く

#はじめに
私は、普段から作業をするときに、Youtubeでプレイリストを流しているのだが、毎回その作業をする際に動画が気になったりなど、気が散る原因となっていました。
そこで、この作業を自動化し、自分が画面を見なくてもいいようにしたいなと考えました。

##環境
* Windows 10 Pro (21H1)
* Python 3.9.1
* Google Chrome 98.0.4758.82 (Official Build)

##ソースコード
“`python:main.py
#インポート
import webbrowser
import time

#URLを開く
webbrowser.open(‘https://www.youtube.com/watch?v=2DoRuPI2OxM&list=PLH-ORs6msKSeO54zI7Rfcr0zC50HiKcLp&index=1&t=0’)
while True:
print(‘Program executed successfully. This window will automatically close.’)
#

元記事を表示

python3 【標準入力】スペース区切りを読み込み

初めまして。初の記事ですが、いきなり自分用のメモに残します。

基本的なことはプロフィールに書いてます。(笑)
まだまだ初心者なので、備忘録として使うことが多々あると思います。ご容赦ください。

最近自分で勉強していて

・標準入力で空白区切りの入力があった場合、どう受け取れば良かったっけ。

と根本的な部分で詰まってたので残します。

“`test.py

(変数1,変数2) = map(データ型,input().split())

“`

変数の部分は区切り数が分かっていれば追加可能。
データ型の部分で int,str 等 指定。

VBやJavaを仕事で使うことが多く、pythonは実務では触らない…。
ので、忘れますね。

元記事を表示

【Atcoder】入緑したのでここまでの勉強をまとめてみた【Python】

入緑しました〜!
最近のもので描かれてる記事もないのと、久々に文字として何か書かないとまずいなと思ってつらつら書いておきます。
![スクリーンショット 2022-02-06 14.43.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384600/bf5e94d6-36ec-086d-322b-28b3d8a55502.png)

# 筆者のスタート地点
アルゴリズムに関する知識は皆無。(二分探索や、累積和などすら知りませんでした)
それ以外仕事では主にフロントエンドの実装を行っておりSwiftが最近はメインです。学生時代はReactNativeを使ってインターンに参加したりをしていました。
そのため、Atcoderの計算量を意識することなく、愚直に計算するA,Bぐらいは書けるレベルのスタートになります。
C++が競プロではスタンダートですが、業務との兼ね合いもあるし、これ以上学ぶ言語も増やしたくなかったのと余程のことがない限り今はPythonで書いてPypyで出せば通るので少し馴染みがあったPyt

元記事を表示

【Windows 10 /python3.8】Generate 100,000+ unique Kanji and sell them as NFTs Part-2

# Objectives
After generating some unique Kanji, the last step is to sell them on OpenSea. it is pain in the neck uploading thousand of images one by one. I found automation code that uploads my images to the OpenSea. I will use that code to upload my images on the OpenSea.
**If you haven’t checked Part 1 yet, Go to 【Part1】**

# Version

– python 3.8
– Pillow 8.4.0

# Create OpenSea Account and Connected to Your Wa

元記事を表示

[FlyweightPatter]wikiのサンプルをpython3で実装

“`python:flyweight_pattern_wiki.py
“””Flyweight Pattern
https://ja.wikipedia.org/wiki/Flyweight_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3

Desc:
等価なインスタンスを[別々の箇所]で使用する際に、
一つのインスタンスを再利用することによって、
プログラムを省リソース化することを目的とする。

(UML
FlyweightFactory <>————– Flyweight
– pool:Flyweight[]
+ getFlyweight()

(Ex
StampFactory <>————– Stamp
– pool: Stamp[]
+ get()
“””

# Flyweight
class Stamp:

def __init__(self, type: str):
self.__type = type

def print(self):
print

元記事を表示

OTHERカテゴリの最新記事