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

Python関連のことを調べてみた2022年10月17日
目次

[Django] migrate しようとしたら MySQL Error 1050 ではまった話。

## Error 内容
“`terminal
django.db.utils.OperationalError: (1050, “Table ‘django_admin_log’ already exists”)
“`
migrations 履歴を閲覧
“`python
python3 manage.py showmigrations

# output
admin
[ ] 0001_initial
[ ] 0002_logentry_remove_auto_add
[ ] 0003_logentry_add_action_flag_choices
api
[X] 0001_initial
auth
[X] 0001_initial
[ ] 0002_alter_permission_name_max_length
[ ] 0003_alter_user_email_max_length
[ ] 0004_alter_user_username_opts
[ ] 0005_alter_user_last_login_null
[ ] 0006_require_

元記事を表示

【データ可視化】株・ビットコイン・為替

# 用語

`テクニカル指標`

– ***移動平均***
– **過去〇〇日分の平均**
– ゴールデンクロス
– 「短期の移動平均線」が「中期以上の移動平均線」を下から上に抜けること
– 価格が上昇しているサイン
– デッドクロス
– 「短期の移動平均線」が「中期以上の移動平均線」を上から下に抜けること
– 価格が下降しているサイン
– ***MACD***
– **トレンドを見る指標**
– 0以上なら上昇トレンド
– 0以下なら下降トレンド
– ***RSI***
– **売られ過ぎ・買われ過ぎを判断する指標**
– 20〜30%を下回る・・・売られ過ぎ
– 「買い」と判断する

元記事を表示

第4回 【Python】まだ見ぬアクティビティーを求めてアソビュー !機械学習(Doc2Vec)

# 1. 概要
この記事は第3回の続きです。

https://qiita.com/Tokoroteen/private/cf4c8dc29b2410917ba1

第3回ではアクティビティー予約サイト「アソビュー!」から各アクティビティー施設の口コミをスクレイピングしました。
**休日への想いをアクティビティーという形にする**という目的を達成するため、今回は口コミデータを使って、アクティビティーをレコメンドしてくれるモデルを構築していきたいと思います。

完成したものはこちら↓

https://lifac.herokuapp.com/

第1回:settings.pyの機密情報をGitHubで公開しない方法【Djangoでアプリ開発】

# 概要
アプリ開発しつつ今後デプロイすることを考えGitHubにデータをプッシュしていた時にふと、

「あれ、これデータベースの情報(ユーザ名やパスワードを記載していた)とか秘密鍵とか、見えちゃダメでは?でもsetting.pyってデプロイ時にはGitHubにプッシュするものでは?ん?(。´・ω・)」

となったため、調べた結果を備忘録として残します。

# 実施する事
* **local_settings.py**を作成し、その中に公開したくない情報を記載
(例)
“`example
SECRET_KEY = `秘密鍵`
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘プロジェクトで使用するデータベース名`
‘USER’: `MySQLのユーザー名`
‘PASSWORD’: `MySQLのパスワード`,
}
}
“`
* settings.pyに下記のコードを追加
“`import
try:

元記事を表示

fly.ioにPython(Flask) WebAppをデプロイ→git pushで自動デプロイ

# はじめに
自作Web Appをherokuで運用しようとしていたのですが、herokuの料金プランが変更されるとのことなので急遽fly.ioを試してみました。
fly.ioの公式サイトのマニュアルを参考に作業した手順を自分用に簡単にまとめます。

# 作業手順
1. [公式サイト](https://fly.io/)からGitHubアカウントでサインイン
1. [こちら](https://fly.io/docs/languages-and-frameworks/python/)を参考に、Pythonのサンプルプロジェクトをcloneしてデプロイする
flyctlのインストールは[こちら](https://fly.io/docs/hands-on/install-flyctl/)を参考
1. [こちら](https://fly.io/docs/app-guides/continuous-deployment-with-github-actions/)を参考に、以下を実施
3-1. 自動デプロイしたいGitHubのリポジトリを表示し、設定を開く
3-2. Secrets → Ac

元記事を表示

日経平均株価のチャート分析用グラフ作成

# 一目均衡表
– 日本発祥のテクニカル指標のひとつ

## 1. import
“`py
import pandas as pd
from pandas_datareader import data
import matplotlib.pyplot as plt
%matplotlib inline
import mplfinance as mpf
import warnings
warnings.simplefilter(‘ignore’)
“`

## 2. 日経平均株価のデータを取得
“`py
start_date = ‘2022-01-01’
end_date = ‘2022-10-15’

df = data.DataReader(‘^N225’, ‘yahoo’, start_date, end_date)
date = df.index

df.head()
“`

![スクリーンショット 2022-10-16 20.01.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26

元記事を表示

TechFUL 難易度2「もじもじ文字」

今回はTechFULの「もじもじ文字」を解いてみた
問題は下記のURL
https://techful-programming.com/user/practice/problem/coding/12543

# 問題概要
文字列Sが与えられる。Sに含まれていないアルファベットを昇順に出力せよ!
a,b,c,d・・・・z

# 解説
まず文字列Sの中に含まれているアルファベットが何かを管理したい。
長さ26の配列を用意し文字列Sを一つ一つfor文で回していく。
添え字は0スタートで用意します。
(アルファベットの種類数は26種だからかつ今回は小文字のみで構成されているので26)
アルファベットがあればfalse→trueにする。
ここで、文字型を数値型に直して配列の添え字に合わせてあげる。
俗にいうASCII変換ってやつですね。

例:a→97となる。変換した後に-97すると添え字に合わせることが出来る。

文字列Sを全て回したら次に配列の中身を先頭から順にfor文で回します。
先頭からa,b,c,d,e・・・zとなる。
もしFalseだったらその添え字に97を足してアルファベットにして

元記事を表示

PyCon JP 2022参加レポート(3日目)

– [1日目のレポート](https://qiita.com/ryu22e/items/8b423118fcdf6fcf0755)
– [2日目のレポート](https://qiita.com/ryu22e/items/f406a87d64e5ba66228c)

[PyCon JP 2022](https://2022.pycon.jp/)のイベント本体は昨日で終わりですが、今日は「スプリント」の日です。
「スプリント」とは、イベント参加者が集まって各自の好きなテーマに沿ったコードを書く日です。いわゆる「もくもく会」みたいなものですね。PyCon JPでは、ほぼ毎年スプリントを開催しています。
イベント終了後も熱気が冷めない参加者が自主的に集まってコードを書いたのが発祥、という話を聞いたことがあります(うろ覚え)。

![IMG_0143.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7809/05872adb-3202-7326-eeef-2e7bd3394f37.jpeg)

## スプリントの

元記事を表示

【python】画像を任意の横軸で分割

“`python
import numpy as np
import cv2

def onMouse(event, x, y, flag, wname):
global cnt
global img

if event == cv2.EVENT_MOUSEMOVE: # when mouse move, draw line
img2 = np.copy(img)
h, w = img2.shape[0], img2.shape[1]
# cv2.line(img2, (x, 0), (x, h – 1), (255, 0, 0), thickness=2) # vertical line
cv2.line(img2, (0, y), (w – 1, y), (255, 0, 0), thickness=2) # horizontal line
cv2.imshow(wname, img2)

if event == cv2.EVENT_LBUTTONDOWN:

元記事を表示

学習プリントのカテゴリごとにスクレイピングするの、配列でループしてちょっと便利にした

# 前回やったこと
https://qiita.com/nana_nana/items/4d73092787accb4d3387

# 簡素な改修
このままだと、ほしいページ配下のデータしか取得できない。

# ほしいページを配列に入れてループしよう
少し作り変える

# 改修前
“`
pageName = “kasa-kurabe”
url = “https://print-kids.net/print/sansuu/” + pageName + “/”
“`

# 改修後

“`
pageNames = {“ikimono-card”,”okashi-card”,”douro-hyoushiki-card”,”tenki-kion-fukusou”,”hyoujou-kimochi”,”hyousyoujou”}

for pageName in pageNames:
url = “https://print-kids.net/print/other/” + pageName + “/”
“`

# 結果
複数のカテゴリを一挙にスクレイピングできるようになった。

元記事を表示

PygameでRPG制作 ーーそれっぽい画面を作ってみよう② バトル画面のメニューを作ろう

この記事は、岩手県八幡平市のプログラミング教室「アクセルキャンプ」の公開教材です。
[アクセルキャンプ(フリースペースプラウド)のリンク](https://freespaceproud.com)
教材の作成依頼等も承っております。ご意見等は、リンク先の問い合わせ欄からお願いします。
教材の転用・利用等は自由です
# 寒っ(半ギレ)
季節の変わり目っていうか、すでに冬な気がしてます。ハワイでは一年中夏で海で泳げますが、やっぱりこの時期は結構寒いです。でもTシャツで過ごせるので、東北とは全く違いますけどね。

もうちょっとすると手がかじかんでコード書くのも辛い時期になってきます。。。

それでは今日もゴリゴリコードを書いていきましょう!!

# 今日の目標
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2732489/2b0175ce-0ca8-df10-c8c3-aaa3dca97e07.png)

こんな感じで、簡単なバトル画面のメニュー表示を作っていきます。今選択しているものを

元記事を表示

moviepyの動画書き出しの進捗をGUIの方に出すには

# 忙しい人用
VideoFileClip().write_videofileのlogger引数にproglog.ProgressBarLoggerを継承したクラスを渡して上手いことやる

# きっかけ
[こんなもの](https://github.com/midry3125/CreateMV/)を作っていざ実行ファイル化したいとなったときに僕は思いました

“`「moviepyの動画書き出しの進捗、コンソールに出されるけどどうしよう」“`

最初は面倒くさそうと思って普通にコンソールも表示させてました

しかし、やはり動画の書き出しだけCUIに進捗出すのはどうなのかと思い、偉大なるGoogle様に質問させていただきました

# 実装してみる
Google様から得られた情報をもとに、「動画に音声をつけ、かつその進捗をGUIとして表示する」という処理を実装してみるとこうなります(今回はGUIにwxPythonを使ってます)

“`python
import wx
from moviepy.video.io.VideoFileClip import VideoFileClip

元記事を表示

TweepyでApp permissionsの設定をRead-and-Writeに変更したのに”Read-only application cannot POST”というエラーが表示される件について(2022/10/16現在)

TwitterAPIを利用して投稿することのできるTwitterのBotを作成しようとしていたところ、以下の様なエラーが発生しましたが、ネットにはあまり有益な情報がなかったので記事を書きました。

~~~
発生したエラー:401 Unauthorized Read-only application cannot POST.
エラー内容:読み取り専用のアプリケーションでは投稿することはできません
~~~

**結論:「読み取り専用」から「読み書き両様」に変更した設定を反映させるためには、keyとtokenを更新・再作成して新しくしたものを使用する必要がある。
原因:更新前のkeyとtokenを使用した場合、設定が反映されない**

前提条件:OS -> Windows
     Pythonでtweepyというライブラリを使用している
     Twitterの開発者(Developer)用アカウントを登録している

投稿などの機能を追加したい場合は、「読み取り専用(Read-only)」でなく「読み書き可(Read-and-Write)」へ設定を変更する必要があります。
Read-

元記事を表示

moviepyを使ったプログラムを実行ファイル化する際の注意点

# 何も考えずに実行ファイル化してみる
“`python:main.py
import sys
from moviepy.editor import *

if 2 <= len(sys.argv): videos = [VideoFileClip(path) for path in sys.argv[1:]] clip = concatenate_videoclips(videos) clip.write_videofile("video.mp4") ``` ただの動画連結プログラムです もちろんちゃんと動きます これを何も考えずに実行ファイルにしてみる ```bash $ pyinstaller --onefile -n program main.py ``` 多分実行ファイルの生成には成功します # だかしかし 生成した実行ファイルを実行するとこんなエラーが ``` (前略) AttributeError: module 'moviepy.audio.fx.all' has no attribute 'audio_fadein' ``` #

元記事を表示

【Pythonワンライナー】ANSIのカラーコード一覧を出力する夢のようなprint文

ノリで書いたワンライナーの紹介記事です。
よろしければ軽く流し読みしながらコード実行してみてください。

なお「ANSIのカラーコードとは何ぞ」などの情報は端折っているので悪しからず。

# コード

まずはいきなり完成品。

“`bash
$ python3 -c “print(‘\x20′.join([f’\033[{str(color_code)}m{str(color_code).zfill(3)}\033[0m’ for color_code in range(0, 256)]))”
“`

実行するとこんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203013/88a39884-a87b-d94f-246a-3b33dd93a723.png)

シェル上だとPythonのコード部分がシンタックスハイライトされず構造が分かりづらいので、Pythonのコード部分のみを下記に抜粋しておきます。

“`python
print(‘\x20’.join([f’\

元記事を表示

[入門]Dockerfile からpython環境構築

## 背景
docker の練習として、docker container 内に python の環境構築をしてみます。

## やること
* python の `dockerfile` 作成
* `dockerfile` の作成
* ubuntu 22.04
* python 3.10系
* dockerfile から dockerimage の build
* docker image から コンテナの起動
* コンテナに入り python の起動

## Dockerfile とはなんぞや
* `dockerimage` を作るためのファイル
* `docker build` コマンドでドッカーファイルを `build` すると `dockerimage` が生成できる

### Dockerfile
“`dockerfile
FROM ubuntu:22.04

RUN apt update
RUN apt install -y python3.10
RUN apt install -y python3-pip
“`

### Dock

元記事を表示

Djangoの設定するところまで

# はじめに
構築から設定ファイルを編集するところまで。
Dockerで、PythonコンテナとNginxコンテナを立てて勉強しています。
Pythonコンテナ内で、Django3.2LTSとGunicornを使って動かしてます。
静的ファイルはNginxでリバースプロキシさせてWEBサーバー側に余計な負荷がかからないようにしています。

勉強優先で雑にコンテナ立てたので、整えたら別途公開します。

# 設定ディレクトリを作成
以下のコマンドをプロジェクトディレクトリで実行します。
“`
# django-admin startproject config .
“`
`config`は任意のプロジェクト名
第二引数に`.(カンマ)`を入れることで、`config`という設定ディレクトリを作成する。
第二引数を指定しない場合、`config`という名前のプロジェクトディレクトリに
`config`という同じ名前の設定ディレクトリが作成されてしまうので、ややこしくなってしまいます。

# アプリケーション作成
`account`は任意のアプリケーション名
“`
# cd mypro

元記事を表示

カラーコードからグラデーション作成

# 1. 発端
資料を作っている時、「ベースのカラーコードは決まっているものの、同系色も欲しいな・・・」と思いました。さっと調べて、カラーコードからグラデーションを生成してくれるようなサイトが見つからなかったので自分でコードを書きました。

# 2. コード
“`python
def get_color_map(base_color: str, num: int, reverse: bool = False) -> list:
if len(base_color) != 7:
raise ValueError(‘Color must be #——‘)
r = int(base_color[1:3], 16)
g = int(base_color[3:5], 16)
b = int(base_color[5:7], 16)

color_map = []

for i in range(num):
if reverse:
r_tmp = int((255 – r) * i /

元記事を表示

【Python】妻に真夜中のダンスレッスン予約を強要されたので、Webスクレイピングで回避を試みようとしている話 (3.Chromeドライバを配置せよ)

前回は、「2.python仮想環境構築」について発信しました。

今回は、Webスクレイピングを使用するうえで必要な chromeドライバの配置に挑戦します。
使用するブラウザは Google Chromeですが、ブラウザ上でのログインやボタンクリックなどの操作は、このChromeドライバーを介して行われます。配置するドライバーは、使用しているGoogle Chromeのバージョンに合ったものを取ってくる必要があるようです。つまり、Google Chromeがバージョンアップされるたびに、新しいchromeドライバーが必要になるということです。ちょっと面倒くさいですね。
# Google Chromeのバージョンを確認する。
Google Chromeを起動し、「右上の3点リーダー>ヘルプ>Google Chromeについて」を順に選び、Google Chromeのバージョンを確認します。
巡回数(Cyclic number)を求める

### 巡回数とは
[巡回数(Wikipedia)](https://ja.wikipedia.org/wiki/%E5%B7%A1%E5%9B%9E%E6%95%B0)にあるように「2倍、3倍、4倍…と乗算したときに、その各桁の数を順序を崩さずに巡回させた数になる整数である。ダイヤル数ともいう」。**142857**はよく知られていますが、それ以降の求め方は見当たらなかったので今回調べてみました。(ただし**142857**以外の巡回数は先頭に$0$が付きます)

生成の方法に関しては[Cyclic Number (Wolfram MathWorld)](https://mathworld.wolfram.com/CyclicNumber.html)に記述がありました。

> Cyclic Numberは”full reptend primes”から生成される

とありその[Full Reptend Prime](https://mathworld.wolfram.com/FullReptendPrime.html)とは何かを見ると、

> 10が**原始根**になる素数pはFu

元記事を表示

OTHERカテゴリの最新記事