Python関連のことを調べてみた2021年12月01日

Python関連のことを調べてみた2021年12月01日

counter measure for peen install error

# while install old version python by pyenv

“`

CFLAGS=”-I$(brew –prefix openssl)/include -I$(brew –prefix bzip2)/include -I$(brew –prefix readline)/include -I$(xcrun –show-sdk-path)/usr/include” LDFLAGS=”-L$(brew –prefix openssl)/lib -L$(brew –prefix readline)/lib -L$(brew –prefix zlib)/lib -L$(brew –prefix bzip2)/lib” pyenv install –patch 3.6.5 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1) ```

元記事を表示

FastAPI と SQLModel

**Tortoise ORM** は asyncio 互換のORM (Object Relational Mapper)です(inspired by Django)。
FastAPIでよく使われています。しかしFastAPIで使用するときは**Pydantic**である必要があり、Tortoise から Pydantic へ変換して使ったりします。つまり同じようなクラスを2重に持つことになります。この辺は、以下の過去記事に記してあります。

**【過去記事】**
[Tortoise ORM入門 – Qiita](https://qiita.com/sand/items/074866157635b50eb447)
[FastAPI と Tortoise ORM と Pydantic について – Qiita](https://qiita.com/sand/items/e5116ad4a476c654673a)

以上の問題を解決するために作られたのが **SQLModel** です。FastAPIの作者自らが作成しています。彼は**SQLModelクラスモデルは、SQLAlchemy

元記事を表示

AzureFunctions+Dashでお手軽ダッシュボード

# はじめに

ちょっとしたご縁からAzureを使用することになりました。
今回はそこで集めていたデータの可視化をしようとGrafanaに出してみましたが、元々のテーブルレイアウトがそこまで深く考えて設計していなかったこともあり、いまいちしっくりこず。最終的にDashをつかってダッシュボードを手作りしてみました。

環境は最初、WebAppServiceに立てていたんですが、無料プランではそもそも常時起動が設定できなかったり、B1以上のプランにして常時起動させていてもリポジトリにPushしてからビルド待ちで数分かかってしまうなどどうも使い勝手が悪く。[Azure Functions で Flask/WSGI のAPIを動かす](https://qiita.com/hkato/items/263c09095aaf53d6fcf7)という素晴らしい記事を見つけて試しにうごかしてみたら、割と満足がいく結果になった[^1]ので記録に残しておきます。

[^1]: すごく早いっていうわけではないけど、WebAppServiceより起動までが早い気がするのと、VSCodeのAzurePluginで

元記事を表示

チャットボットを使ったCisco DNA Centerの有効活用

# はじめに
この記事はシスコの同志による Advent Calendar の一部として投稿しています
– 2017年版: https://qiita.com/advent-calendar/2017/cisco
– 2018年版: https://qiita.com/advent-calendar/2018/cisco
– 2019年版: https://qiita.com/advent-calendar/2019/cisco
– 2020年版: https://qiita.com/advent-calendar/2020/cisco
– 2020年版(2枚目): https://qiita.com/advent-calendar/2020/cisco2
– 2021年版: https://qiita.com/advent-calendar/2021/cisco
– 2021年半(2枚目): https://qiita.com/advent-calendar/2021/cisco2

本記事は2021年版Advent Calendarの1日目の投稿になり、私自身としては2回目の投稿

元記事を表示

AWS CDK(Python)でアカウントIDを含むS3バケットを作る

この記事は [ハンズラボ AdventCalendar2021](https://qiita.com/advent-calendar/2021/handslab) 1日目の記事です。

プログラム言語でAWSインフラを定義できるという [AWS CDK](https://aws.amazon.com/jp/cdk/) を試してみました。言語はPython3を利用します。

## インストール

Node、Python3、virtualenvが必須のため事前にセットアップ。
私の環境ではpyenvも導入しています。

“`bash
$ node -v
v12.12.0
$ python -V
Python 3.8.6
$ virtualenv –version
virtualenv 20.10.0 from /Users/xxxx/.pyenv/versions/3.8.6/lib/python3.8/site-packages/virtualenv/__init__.py
“`

早速CDKをインストールします。

“`bash
$ npm install -g aws-

元記事を表示

AmplifyのServerless containersを使って消しゴムマジックAPIをデプロイしてみた

この記事は[朝日新聞社 Advent Calendar 2021](https://qiita.com/advent-calendar/2021/asahi)の第1日目の記事です。
これから毎日、朝日新聞社のエンジニアがバラエティに富んだテック記事をお届けします!

一部記事は[noteで運営中のテックブログ](https://note.com/asahi_ictrad)記事となります。
合わせてこちらもフォローいただけると幸いです。

https://note.com/asahi_ictrad

初日は[メディア研究開発センター](https://cl.asahi.com/)の倉井が、AWS/Amplifyを利用したサーバレスなコンテナAPIのデプロイに取り組んだ内容をお届けいたします!
***

### 超ざっくり作ったもの説明

AmplifyのServerless containersでデプロイしたAPIに
![スクリーンショット 2021-11-12 19.24.21.png](https://qiita-image-store.s3.ap-northeast-1.amazo

元記事を表示

LT大会のランキングを設計してみた

エイチームフィナジーアドベントカレンダー1日目は私 [s2terminal](https://twitter.com/s2terminal_tech) が担当します。私は普段Web開発やデータサイエンスの仕事していますが、その中でWebサイトに掲載する商材の口コミを集計したり、社内行事で表彰制度の投票集計に携わったりすることで **ランキング** という物に触れる機会が多少ありました。

先日、弊社グループ内で大規模なLT大会が開催されました。そこではLTの視聴者による投票が行われ、最も良かったLTのランキングを決めることになりました。その際に私は、ランキングのアルゴリズムの設計・実装を担当しました。

本稿では、単純なランキング集計にはどういう問題点があるかと、このLT大会において「良いLT」が上位になるようなランキングをどのように考えたかを書きます。LT大会のランキングを題材としていますが、たとえばECサイトの星5段階評価からランキングを考える場合などにも応用できると思います。本稿に於ける手法は完璧な物ではありませんが実際に利用されたものであり、何かの参考になれば幸いです。

なお

元記事を表示

Python の asyncio は超便利

Python の asyncio ([公式ページ](https://docs.python.org/ja/3/library/asyncio.html)) は超便利なので紹介します。

# ■何が便利?

要するに JavaScript ではもはや当たり前になっている **async/await** が実現できます。
つまり、**非同期**(処理をしている間、同期して完了を待つのでなく、次の処理を実行するやり方)を実現します。
非同期により、全体の **処理速度を爆上げ** できる場合がよくあります。

例えば、外部サービスリクエストや、ファイル・DBへの読み書きなど、I/O関連は時間がかかる割にCPUは空いてたりするので、そこが有効に活用されるようになるわけです。

多くのシステムはI/Oが大量にあったりするので圧倒的です。

# ■それってスレッドでもできるのでは?

もちろん可能ですが、コンセプトが異なり、スレッドに比べて **圧倒的にお手軽** です。

スレッドと何が違うのかというと、主な違いは、スレッドは複数の処理が同時に走るということです。処理の裏で別の処理が同時に走

元記事を表示

TouchDesignerでOpenCVを使った簡単なロゴ検出について

#Hello!!!!
What’s up everybody guys!!
ということで
あまたのTouchdesignerユーザーが集うこのアドカレの`TOP`バッターを務めさせていただくことに感謝を申し上げます。

完全にタイトルが2年前の1日目の

[TouchDesignerでOpenCVを使った簡単な顔認識について](https://qiita.com/komakinex/items/5b84b88d537d393afc9)

に寄せていますが、これも何かの縁ですので**OpenCVでのロゴ検出**についてお話していきます

#今回の制作物
![ezgif.com-gif-maker (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704869/c0c76c76-c539-e386-05ea-1c7c7eb362b8.gif)

buttonを押すと、スタバのロゴ検出して、そこに !LOGO! がついてきますね。
今回は0からこれを作っていきます。

#チュートリアル
まず初めに、この記

元記事を表示

Introduction to Spot programming (with ROS)

# Introduction to Spot programming (with ROS)

こんにちは、東大のJSKでBoston Dynamics社のSpotというロボットをベースにシステムを作ってるsktometometoです。
この記事では、開発者がSpotを使ってどんなことができるのか、開発者はどのようなプログラミングインターフェースが用意されているのかについて、僕個人の見解を交えながら解説していきます。
(追記予定)

参考ページ類

– [Spot SDK](https://dev.bostondynamics.com/)
– [spot-sdk (github)](https://github.com/boston-dynamics/spot-sdk)
– [Knowledge Center](https://support.bostondynamics.com/s/knowledge-center-)
– [Community Forum](https://support.bostondynamics.com/s/community-forum)
– [spot_ro

元記事を表示

我が家のスーパーIoTハウス化が完了したので紹介します

#モチベーション
私は10年近く、工業分野のIT化に取り組んでおりますが、以前から
**「世の中の商用向けIoTサービス、高すぎない?」**
と感じてきました。

・センサでデータを取得して遠隔から見られるようにする

たったこれだけなのに、ウン十万円~ウン千万円といったオーダーの費用が掛かります。
そこで、

**家庭向けの製品を組み合わせて、安価にIoTシステムを構築できないか**

ということを、まずは我が家で試してみました。
結論から言うと、**低コストでも完成度の高いおうちIoTシステムを構築できた**と感じています。
![summary.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/d9850898-d768-8199-fac3-601101ef4e76.png)

#おうちIoTシステムの要件
###IoTとは?
まず、「IoTとは何か?」というところをハッキリさせます。

[総務省のホームページには](https://www.soumu.go.jp/johotsusinto

元記事を表示

日系大手企業のパワポエンジニア事情をPythonで無理やり改善する

# はじめに
2021年10月、以下のような記事がQiitaに爆誕し、多くの**日系大手企業勤務者からの共感**を得ました。

https://qiita.com/revvve44/items/718812b744d57938739a

私も日系大手企業に勤務する者として共感と虚無感を感じたので、この状況を私が得意とする**Pythonで改善できないか**を考えてみました。

※本記事はキャリアをテーマにしたポエム記事です。**「Pythonは[人気No.1言語によく選ばれてるけど](https://japan.zdnet.com/article/35176280/)、キャリア形成には役立つの?」**という疑問を持たれている方に、役立てられる記事を目指したいと思います。

# 日系大手企業の定義
元記事には、以下のような日系大手企業の条件が示されていました。

`従業員数: 10000人以上(連結含め)
資本金: 1000億円以上
上場証券取引所: 東証1部
事業所数: 国内に複数、海外にも少し
平均年齢: 40歳以上
平均年収: 800万円以上`

上記に当てはまる企業を前提として、

元記事を表示

Python Firebase Admin SDKによる位置情報データの取り扱い① データの登録編

Location Tech Advent Calendar 2021 by LBMA Japan ? Advent Calendar 2021の1日目ということで、Firestoreのデータベースに位置情報データを投入するというごく基本的な記事を書いていきます!

# 対象
Firebase Firestoreを使い始めた人
位置情報データを扱いたい人

# 背景
Firebase Firestoreは、JSONのようなスキーマでデータを出し入れできるGoolge Cloud Platformのデータベースで、極めて高速・柔軟にデータの処理ができます。

一方で、制約条件も多くあります。例えば、Firestoreに登録されたデータを2つ以上のフィールドを用いて検索することは基本的にはできません。SQLでいうと、「Where句で2つ以上のフィールドを使った条件分が書けない」というようなイメージです。このようなリレーショナル・データベースだとあまり考えられないような制約条件が、Firebaseには他にもいくつかあります。

こうした制約条件は一見厳しいように見えますが、通常の場合、クライア

元記事を表示

Google Colab と Turtle で描くアルファベット一覧(大文字編)

# 0. はじめに

– [MYJLab Advent Calendar 2021](https://qiita.com/advent-calendar/2021/myjlab) 1日目の記事です.
– Google Colaboratory と Turtle(タートルグラフィックス)でのアルファベットの描き方をまとめました.
– Turtleに命令を出して動かすことで簡単に文字を描くことができます.

![myjlab.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/484145/05e9000d-dfb9-a4dc-e2c3-96c9dc8eecf7.gif)

# 1. Turtle(タートルグラフィックス)の基本操作
– 本家サイト:[turtle — タートルグラフィックス](https://docs.python.org/ja/3/library/turtle.html)を参考にしています.

## Turtleの動き

### 前進
“`Python
turtle.forward(d

元記事を表示

AIRS-Lab式のKaggle入門

AIRS-Labの記念すべき初アドベントカレンダーを担当させていただきます!!

2021年8月に始まったAIに関するコミュニティ[AIRS-Lab](https://www.airs-lab.jp/ “AIRS-Lab”)の運営のお手伝いをしているyamoriです。

普段はFlutterエンジニアをしているのですが、昨年末に、我妻さんがAIに関するコミュニティを始めるという話を聞き、始めるとき手伝います!という流れで、今年の夏に週1ミーティングをしながらいろいろ準備してきました。

この記事は、AI初心者・Kaggle初心者(中級者・上級者向けの記事は明日我妻さんが書いてくれるはず・・・!)に向けて書いています。

## AIRS-Labの紹介
記事に入る前に、少しAIRS-Labの紹介をさせてください。
AIRS-Labは現在30名ほど在籍しており、普段はSlack上でAIに関連する情報交換を行なっております。
週に2回ほど、みんなでもくもく会を行い、それぞれテーマを決めて学習を行っているのですが、もくもく会の前後で話をする時間があるので、今詰まっているところを気軽に質問できる場

元記事を表示

自作Cコンパイラ、自作viクローン、自作Pythonクローン(未完成)がiSHで動きました。

どうやら、iSHにはinstall先にファイルがあるとファイルが壊れるみたいで7時間くらいハマって
ようやくデバッグしました。単にコンパイル時にsudo make uninstallするだけですが
僕の7時間返せ。でも、iPhone実機で自作エディッタが動いた時は感涙しました。
androidのtermuxでも同じように全環境が動きます。
どうでもいいんですけどね。まあ、面白いんでやってます。

https://github.com/ab25cq/neo-c2

元記事を表示

Scrapyを使ってスクレイピング覚書

PythonのScrapyを使ってQiitaトップページからトレンドTOP30をスクレイピングする方法を雑に残しておきます。

#Scrapyのインストール
※環境によっては他にもいろいろインストールが必要かもしれません。

“`
pip install scrapy
“`

#プロジェクト作成

“`
scrapy startproject qiita
“`

#spiderの作成
プロジェクトを作成するとディレクトリが作成されるので、そこに移動してからspiderを作成します。

“`
cd qiita
scrapy genspider qiita_trend qiita.com
“`
#ソースコードの修正
setting.pyに以下を追加

“`setting.py
FEED_EXPORT_ENCODING = ‘utf-8′
“`

setting.pyに以下を有効化し’Accept-Language’: ‘en’を’ja’に修正

“`setting.py
DEFAULT_REQUEST_HEADERS = {
# ‘Accept’: ‘text/h

元記事を表示

Cython を含む Python パッケージを poetry で作成・公開

# はじめに

これは「Cython を利用して高速な Python ライブラリを書いたものの、PyPI へ publish する手順知らね〜!」という poetry ユーザ へ向けたシンプルな記事です。

# 前提

例として、以下の構造のプロジェクトを用いて説明します。便宜上、[Cython公式チュートリアル](https://cython.readthedocs.io/en/latest/src/tutorial/cython_tutorial.html#:~:text=Now%20following%20the,this%20we%20have%3A)に記されている手順を実行したときに生成される *.so や *.cpp 等のファイルは省略しています。

“`
cy_test/
├── cy_test/
│ ├── __init__.py
│ ├── test.pyx
│ …
├── pyproject.toml

“`

以下は `test.pyx` の中身です。生の Python が特に苦手とするような、なんか大量の逐次計算をしてクソデカ配列を作

元記事を表示

Pythonの理解の乏しい文法を補う記事

# はじめに

Pythonをかけると言っても,所々にわからない文法があるかと思います。

そんなものを一つずつ公式ドキュメントを調べつつ,実験したいと思います。

– argparse
– decorator
– class method v.s. static method
– property , setter
– Union
– yield

次回 : [torch/autograd/grad_mode.pyのgithub](https://github.com/pytorch/pytorch/blob/master/torch/autograd/grad_mode.py)を理解する.

# 1. [argparse](https://docs.python.org/ja/3/library/argparse.html#module-argparse)

プログラムの仕様を記述できます。サンプルは以下です。

“`python
import argparse
def func(args):
return sum(args)
parser = argparse.Argu

元記事を表示

Pythonを使ってcsvから特定期間内のデータを集計する

## 作成背景
初投稿! :angel:
早いもので2021年も残り1ヶ月ですねえ。

うちの会社では、顧客からの問合せを受けた際に、内容の履歴を残します(一般的)。
一応webベースかつオンプレで存在する問合せ管理システムなんですが、これがいかんせん使いづらい。。
「担当者別に集計して、この期間はどれくらい問合せがあるの見れたらいいのに」なんて思ってたところ、
**Pythonでcsvからデータ集計すればええやん!**てことで調べまくったのが最初。
(csvのデータは吐き出せるけどExcelではやりたくなかったのが本音)

最近プログラミングが好きになってPythonとかGOとかPHPとかRubyとか触ってますが、
Python以外はProgateちょこちょこやってるくらいなので初心者に毛の生えたレベルやと思ってください。

調べまくってツギハギだらけのコードなので、もしかすると無駄な部分もあるかも・・・?
何卒おてやわらかに:ok_woman_tone2:(いつかちっちゃい船じゃなくてメリー号くらい作れるようになりたい)

## 環境
Windows10。Microsoft Off

元記事を表示

OTHERカテゴリの最新記事