Python3関連のことを調べてみた2021年08月21日

Python3関連のことを調べてみた2021年08月21日

MediaPipeでちょっと困った話

# ことの発端
後輩から、「こんなエラーが出て詰みましたァ!」と元気よく泣きつかれたので調査した。

“`
AttributeError: module ‘mediapipe.python.solutions’ has no attribute ‘drawing_styles’
“`

# 使用した環境
| |バージョン|
|—————|———|
|Python | 3.6|
|MediaPipe | 0.8.3|
あとPyCharm。

# 原因
MediaPipeをインストールするときに、“`pip install mediapipe“`としたこと。

## なんで?
なんか知らんが、件の“`drawing_styles.py“`が存在しない。pip installでのパッケージには含まれてないらしい。
[大本のgithub](https://github.com/google/mediapipe/tree/master/mediapipe/python/solutio

元記事を表示

無限ループや IndexError: list index out of range になる

**変数の値を変えて同じ動作を複数回行うなら関数を定義!**
## 期待した動作と計画
for で「リストX(固定)とリストY(可変)の[0]を比較し、一致した場合はリストYの[0]を削除する。リストXが終わるか、リストYが空になれば終了する」という動作を作成。
カウンタと while で for の動作を2回行う。リストYは変化するので、 while の前でリスト1をリストYに代入し、 while の1回目のみリスト2をリストYに代入する。
## 発生した事象
何度も無限ループや IndexError: list index out of range に陥った
## 原因
while の中の for で while や if を複数書き、break/ continue の行先が想定外のところになっていることに気付けなかった。
リストXが終わるまでにリストYが空にならなかった場合、 while でリストXの2周目が始まってしまった。
「同じ動作を複数回行うなら for/ while でループ」だと思い込んでいた。
## 対策
こまめに print して期待通りの動作か確認する。
変数を

元記事を表示

Python pptxで簡単な自動スライド作成アプリを作成してみた。

# python-pptx
皆さんはパワーポイントを自動で作成したいと思ったことはありませんか?
というより、作成したいと思ったからこのページへと飛んできているんですよね。
そこで便利なのが、「python-pptx」。
こいつを使えば、オブジェクト指向でどんなスライドでも作成することができます。

今回はその中でも私が個人的に使いたい要素として、
1. タイトルスライド
2. 画像貼り付け
3. テーブル貼り付け

の三種類を実装しようと思います。
とはいえ、備忘録のための駆け足実装ですので、説明不足感が否めないですがご容赦ください。

では行きましょう。

# python-pptxの導入
導入はおなじみ、pipで簡単にinstallできます。

“`bash
$pip install python-pptx
“`

#0. 共通設定
タイトルスライドを入れる前に、必要な設定は先にしてしまいましょう。

“`python:sample.py
from pptx import Presentation
from pptx.util import Cm, Pt

元記事を表示

Discord.pyで1からスーパーグローバルチャット導入

#グローバルチャットとは

グローバルチャットとは、Discordのチャンネルを跨いで会話出来るチャットの事です。
特定のチャンネルのメッセージをBOTが受信し、他のチャンネルへメッセージを転送することで、別のサーバーにいる相手とも、あたかも同じチャンネルで会話しているような感覚でチャットを行えます。
![スクリーンショット 2021-08-20 16.02.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224667/95c772f7-7091-70f9-0dbd-d8df7554c643.png)

#スーパーグローバルチャットとは

従来のグローバルチャットでは、BOTがメッセージを仲介して他のチャンネルへと送信する仕組みのため、同じ会話に参加したければ、同じBOTを導入する必要があります。
また、グローバルチャットを導入しているBOTが増えすぎたために、結局会話が分散してしまい、グローバルチャットをサーバーに導入しようと思っても、どのBOTを入れれば良いのか混乱してしまいます。
そこで、BO

元記事を表示

Algorithm | Union-FindをPython3で解説(例題あり)

## Union-Findとは

`Union-Find`は、グループ分けを管理できるもの。

主に2つの操作を行うことができる。

– グループの接合(Union)
– グループに属するかの判定(Find)

これら2つが行えるため、Union-Findと呼ばれる。

下記にUnionFindのクラスを参照してあるので、これを使って説明する。

https://note.nkmk.me/python-union-find/

“`python
from collections import defaultdict

class UnionFind():
def __init__(self, n):
self.n = n
self.parents = [-1] * n

def find(self, x):
if self.parents[x] < 0: return x else: self.parents[x] = self.find(self.pare

元記事を表示

poetryの環境を.venvにしたい

メモ用

poetryで、仮想環境をproject内の.venvにしたい時、以下のようにする

“`\bash
$ poetry config virtualenvs.in-project true
“`

## 参考
– https://www.lifewithpython.com/2020/01/python-tips-poetry-tasks.html

元記事を表示

FlaskにVue.jsからGET、POSTする方法

ファイル構造はシンプルにこのようにしています。

“`
.
├── app.py
└── templates
└── index.html
“`

# GETする方法

productsが取得したいデータになっています。
jsonifyを使って、JSONデータを返しています。

portは適当につけてます。

“`py:app.py
from flask import Flask, render_template, jsonify, request

app = Flask(__name__)
app.config[‘JSON_AS_ASCII’] = False # 文字化け防止

products = [
{‘id’: 1, ‘name’:’商品1′, ‘price’:780},
{‘id’: 2, ‘name’:’商品2′, ‘price’:1280},
{‘id’: 3, ‘name’:’商品3′, ‘price’:1980},
]

@app.route(‘/’)
def index():
return render_templ

元記事を表示

rangeで指定する範囲の数字のリストを作成

##指定する範囲の数字のリスト(昇順)を作成

“`rb
a = list(range(1,10,2))
print(a)
#実行結果
[1, 3, 5, 7, 9]
“`
第一引数: start(含む) デフォルトは0、省略可
第二引数: end(含まない) 省略不可
第三引数: 幅 デフォルトは1、省略可

##降順のリストを作成

“`rb
a = list(range(10,0,-1))
print(a)
#実行結果
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
“`

元記事を表示

ゼロから始める機械学習 上位を狙う編

# 最終目的

プログラミングを全くやったことがないという状態から,機械学習を行えるようになるまで,順に勉強する.

これまでの勉強会は下記

https://qiita.com/t-baba-11/items/054bda7060952fc6bf74

https://qiita.com/t-baba-11/items/6dc947e3f3b33485ccf6

https://qiita.com/t-baba-11/items/e87c078f4e46234df322

https://qiita.com/t-baba-11/items/34f8d2f478504a339481

#機械学習のチューニングの流れ

コンペで上位を狙うために特徴量を作成する.

※結果は12位だった.

流れ

– ライブラリのインポート
– GPU環境チェック
– 関数設定
– データ読み込み
– 相関があるデータの作成
– 特徴量作成
– 学習モデルの作成
– 結果の出力

#ライブラリのインポート

“`.py
import pandas as pd
import numpy as np
i

元記事を表示

DRF, Vue.js, Dockerでmarkdownブログを作ったメモ ①

# 今回やる事
DRF, Vue, Dockerでmarkdownで書けるブログを作ったので、主に自分用メモとして残します。
参考程度にしてもらえたらうれしいです。

今回は、記事一覧が返るAPIの作成までまとめます。

# 環境
python 3.7.9
django 2.2.5
vue/cli 4.5.10
vue 2.6.12
docker 20.10.7

# 環境構築

環境構築は以前まとめた記事があるので、今回は省略します。
[DRF & Vue.js & Dockerでの環境構築](https://qiita.com/kRysTasis/items/afdb2fad6ae6a3522437 “DRF & Vue.js & Dockerでの環境構築”)

※上記の記事ではalpineのイメージを使用していますが、今回はUbuntuのイメージを使っているのrequirements.txtでのコマンドがapt-getになります。

## 使用するライブラリ

上記の環境構築で書いたもの以外に今回はこんな感じのものを使用します。

・Markdown(DRF)
 マーク

元記事を表示

TensorFlowを使って学べるレシピの紹介

# はじめに

Axrossを運営している藤原です。

**[Axross](https://axross-recipe.com/recipes)** とは、エンジニアの”教育”と”実務”のギャップに着目し、「学んだが活用できない人を減らしたい」という想いのもと、ソフトバンクと社内起業制度にて立ち上げたサービスです。
現役エンジニアによる実践ノウハウを”レシピ”として教材化し、実際にプログラミングで実装を追体験しながら学ぶことができます。AI/機械学習をテーマにした、様々な業務領域やビジネスの課題解決に応用できる実践的な学習教材を170以上揃えています。(2021年8月時点)
Axross:https://axross-recipe.com
公式Twitter:https://twitter.com/Axross_SBiv
![Axrossアイキャッチ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620853/9f500e0e-a759-20e2-bb8b-480bbcfaaf9b.png)
今回は、

元記事を表示

flask+ajaxでスライダーの値を読み取り動的になんやかんやする

# やりたいこと
– flaskを使ってウェブアプリケーションを作成したい
– スライダー(``)の値を読み取り、値に応じて要素をなんやかんや動的に変更したい
– その際ページ更新はしたくない(ajax通信で解決したい)

調べれば似たような記事はあるにはあるものの、勉強も兼ねて記事にすることにした。

# やったこと
flask + jQuery + ajaxで解決した。
今回**なんやかんや**に関しては、`cv2.addWeighted()`による画像合成を行うこととした。

今回のソースはすべて下記のリポジトリで公開しています。
https://github.com/ikentoh/flask-ajax

![blend.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529606/89be6209-45bb-29a8-1509-62480665c84d.gif)

## スライダーを定義する
画像合成のアルファ値の単位はパーセンテージなので、0~100

元記事を表示

【AtCoder】入茶記事というものを書いてみた

みなさんこんにちは。uniです。

今回は、AtCoderという競技プログラミングで茶色になったので、学習期間とかもろもろ書いていこうと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/716184/43583e6b-bd97-c429-48d7-73bdb553051e.png)

## 自己紹介

– 情報系の大学生
– 競技プログラミング歴3ヶ月弱
– 使用言語Python

こちらがプロフィール。

https://atcoder.jp/users/uniTM

## 茶色のレベル感

茶色というのはどのくらいのレベル感なのか。AtCoderの社長の言葉をお借りします。

> 茶色になる条件は、Ratingが400以上になることです。茶色で保証できる実力ですが、正直、AtCoder内ではあまり高いレベルではありません。ただ、ここにたどり着く前に辞めてしまう人が多いので、十分にやる気がある人であるとは言えるでしょう。

> なお、他社転職サイトと比較すると、このレーティン

元記事を表示

【AtCoder】ABC214をPython3で解説(ABCD)

ABC214のA-D問題の解説。

https://atcoder.jp/contests/abc214

## A – New Generation ABC
### 解説

条件分岐の問題。
問題文のとおりに`if`を書いてあげると`AC`。

### コード

“`python
n = int(input())

if n <= 125: print('4') elif n <= 211: print('6') elif n <= 214: print('8') ``` ```python # 短縮コード n = int(input()) print(4 if n <= 125 else 6 if n <= 211 else 8) ``` ## B - How many? ### 解説 $a+b+c \leq S$かつ$a \times b \times c \leq T$を満たす非負整数を求める問題。 $(a, b, c)$の組み合わせなので、条件分岐と三重ループで求めることができる。 ### コード ```python # 愚直 s, t =

元記事を表示

Pythonでエラーなく落ちる(Pillowのバージョン変更で対応)

## 状態の概要
VSCodeでF5で実行してみて、エラーも何も出ずに終了してしまう問題。自分はPyAutoGUIで起きました。

## 解決策
自分の場合はPillow==8.3.1が悪さをしているみたいなので、バージョンを少し戻してみればOK。

“`shell
pip install Pillow==8.3
“`

## 解決にいたるまで
コメントを入れながらデバッグしていると、`import`のところで問題が起きてるっぽい。深く追ってみると、Pillowの中でエラーが起きている…

“`Python
# import先のimport先の…と追っていくときに便利なコード
print(f’##{__file__}################################’)
“`

追っていくと、原因の箇所は以下のようなコードになっている模様。
`from . import _imagingft as core`のところでダメになる。
ImportErrorにも引っかからないし、`except Exception as e:`の中で`traceback.

元記事を表示

10行くらいのPythonコードでTikTokから動画情報を取得する方法

一応、TikTokは開発者向けにEndpointsの提供はしているんですが、TikTok自体のメインがモバイルなので、Webは完全に二の次という感じです。個人的には、TikTokから提供されているWebアプリと比べるとWeb向けのEndpointsはちょっと物足りないというかえらくシンプルという印象です。
https://developers.tiktok.com/
本国の開発者向けにはもう少し色々あるみたいなんですが、国外向けのTikTokのAPIはあんまり力入れていない印象です。

下記はページに掲載されているサンプルです。
[oEmbed](https://oembed.com/)を利用したとてもシンプルなものになっています。

Example
`https://www.tiktok.com/oembed?url=https://www.tiktok.com/@scout2015/video/6718335390845095173`

response

“`json
{
“version”: “1.0”,
“type”: “video”,
“title”: “S

元記事を表示

リモートカメラシステム (MQTT ブローカーに画像をそのまま送る)

次のシステムを構築するための検証です。
[Grove IoT スターターキット for SORACOM で作るリモートカメラシステム](https://qiita.com/ekzemplaro/items/541b82908cec46f6aa7b)

調べている過程で、MQTT ブローカーに画像をそのまま送れることが分かりました。

次のページを参考にしました。
[mosquitto,paho-mqttで画像のやりとり](https://qiita.com/masa-ramenO/items/6dcb706107e9307a599e)

パブリッシュ
camera.jpg という画像を送ります。

“`sh:go_pub.sh
#
# go_pub.sh
#
# Aug/17/2021
#
BROKER=’violet.local’
TOPIC=’sample/imageTopic’
#
mosquitto_pub -h ${BROKER} -p 1883 -t ${TOPIC} -f camera.jpg
#
“`

サブスクライブ
受け取った画像を output.jpg

元記事を表示

リモートカメラシステム(MQTT ブローカーの検証)

次のシステムを構築するための検証です。
[Grove IoT スターターキット for SORACOM で作るリモートカメラシステム](https://qiita.com/ekzemplaro/items/541b82908cec46f6aa7b)

>画像の受け渡しが MQTT ブローカー経由でできるか。
>画像ファイルは、計測した数値データと較べて、かなり大きい。

以下のプログラムを作成しました。
>jpg を JSON に変換するプログラム
>JSON を publish するプログラム
>subscribe で JSON を受け取るプログラム
>JSON を jpg に変換するプログラム

jpg を JSON に変換するプログラム

“`py:jpg_to_json.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# jpg_to_json.py
#
# Aug/17/2021
#
# ——————————————————————

元記事を表示

ModuleNotFoundError: No module named ‘virtualenv.seed.via_app_data’

### 実行環境
Ubuntu 20.04.2 LTS
Python3.8

### 状況
pipenv install コマンドを実行し、仮想環境を作成しようとしたときにエラー

“`sh
Creating a virtualenv for this project…
Pipfile: /home/youichi_io/work/Pipfile
Using /usr/bin/python3.8 (3.8.10) to create virtualenv…
⠹ Creating virtual environment…ModuleNotFoundError: No module named ‘virtualenv.seed.via_app_data’

✘ Failed creating virtual environment

[pipenv.exceptions.VirtualenvCreationException]:
Failed to create virtual environment.
“`

### 思い当たる要因
以前、Anacondaをインスト

元記事を表示

python3 リスト内包表記のデバッグ

“`python:python3
def debug(w):
print(f’word:{w}’)
return w

list_debug = [“apple”, “lemon”, None, “cat”, “inu”]
list_debug = [debug(s) for s in list_debug]
print(list_debug)
“`

“`text:out
word:apple
word:lemon
word:None
word:cat
word:inu
[‘apple’, ‘lemon’, None, ‘cat’, ‘inu’]
“`

元記事を表示

OTHERカテゴリの最新記事