- 1. Python拡張の作り方
- 2. Python matplotlibでリアルタムに音を可視化
- 3. WSLでGUIアプリを実行する
- 4. discord.pyでCogとSlashcommandを両方使う
- 5. schemdrawでMOSトランジスタと回路を描く
- 6. AWS IOT の shadow の値を読む方法
- 7. [Python3] 初心者の初心者による「リスト」基礎解説
- 8. Windows 10 HomeへDockerをインストールしてDjango + PostgreSQL環境作る
- 9. ServerlessFrameworkを触ってみた
- 10. Python3について(@,デコーダーについて)
- 11. NCBIのAPI(E-Utils)を使ってPMIDからDOIを取得(Python編)
- 12. AWS IOT にパブリッシュをするサンプル
- 13. Qiitaの記事をバックアップする(Python)
- 14. Python3について(return[戻り値]について)
- 15. [Github Actions] Python + Poetry
- 16. ①初めての投稿
- 17. 急にpip installで一部のライブラリのインストールが失敗するようになった件
- 18. PandasのデータフレームをRに読み込ませる
- 19. Python3 FlaskでMOCK的なAPIサーバを作る(5分で記載)
- 20. AtCoder参加記録No.5ーABC217
Python拡張の作り方
# C/C++ で Python 拡張を作る
## 準備
事前に、
– apt install python3-dev
– yum install python39-devel等を実行し、Python の開発モジュールをインストールしてから実行してください。
## C/C++ で Python 拡張を作成する場合
とりあえず、C++で `myModule` 作成する。
– 必要なファイル
– setup.py
“`python:setup.py
from distutils.core import setup, Extensionsetup(name = ‘myModule’, version = ‘1.0.0’, \
ext_modules = [Extension(‘myModule’, [‘extention.cpp’])])
“`– extention.cpp
“`cpp:extention.cpp
/*** ヘッダのインクルードパスにバージョンが入るので注意が必要です
Python matplotlibでリアルタムに音を可視化
#0. はじめに
pyaudioを用いて音を読み込み、それをnumpyでバイナリから数値化、matplotlibで描画する。作業環境:
・Ubuntu
・Docker
・Python3.8.5各ライブラリがインストールされていない場合はターミナルで以下を実行しpipインストールしておく。
“`powershell
python -m pip install numpy matplotlib pyaudio
“`インストールができたらimportする。
“`python
import pyaudio
import numpy as np
import matplotlib.pyplot as plt
“`#1. 音を読み込む前の設定
pyaudioを用いて音を読み込むための設定を行っていく。
`CHUNK`はデータサイズ。基本的に1024とするがデータ数が少なくエラーを吐かれたので3倍している。
`RATE`はサンプリングレート。1秒間に何回標本化するか指定する。CDが441KHzなのでそれに合わせている。
CHANKやサンプリングレートに関して詳しく知りたい
WSLでGUIアプリを実行する
#1.この記事の内容
Windows 11 ビルド22000以降で,LinuxのGUIアプリを実行できるようになったらしいので,試してみました.
GUIアプリの起動時に“`cannot open display“`のエラーが出て対策試行の経緯も記載しています.普段はWSLからDockerを起動して作業していますので,コンテナ上からGUIアプリ起動まで試します.
##1-1.使用環境
* Windows11 ビルド
* PythonのGUI処理の動作を確認#2.Windows 11アップデート
##2-1.アップデート前の準備(アップデート要件への対応)
手元の環境では,Windows11へのアップデート要件のうち,TPM 2.0とセキュアブートの2点で引っかかりました.
###2-1-1.TPM 2.0
筆者のPCはASUSマザーボード+Indel CPUの構成で,[[Motherboard] ASUS マザーボードに Windows 11 をインストールする方法は?](https://www.asus.com/jp/support/FAQ/1046215/)
discord.pyでCogとSlashcommandを両方使う
# discord.pyの開発終了とSlashCommandの必須化が押し寄せてきた
discord.pyの開発が終了したのはご存じの通り。開発者の方々おつかれさまでした。
それでも我々discord依存民はこれまで作って使い慣れてきたdiscord.botを手放すことはできません。
なので開発途中のdiscord_slashライブラリを活用したdiscord.botのひな形を用意しました。
## ひな形
###testbot.py:実行本体ファイルです
“`python3:testbot.py
#!/usr/bin/env python3
import discord
from discord.ext import commands
from discord_slash import SlashCommand
from discord_slash.utils import manage_commands
from logging import basicConfig, getLoggerbasicConfig(level = config.LOG_LEVEL)
LOG = ge
schemdrawでMOSトランジスタと回路を描く
####1.背景
手っ取り早く回路図を描くのは、パワーポイントなどを利用したり、EDAツールの回路を画面コピーしたりするのが個人的には多い。同じ専門仲間では少々のグリッドずれや誤記でも、回路の本質を理解しあえるが、公式の文書や専門外に相手へ示すには正確な描画が望ましい。
そのようなきっかけから探して見つけたpythonのライブラリがschemdrawだが、基板回路を想定した素子が主で、IC回路で用いられるPMOS,NMOSトランジスタはライブラリにはなく、試しに自分で作ってみた。####2.目標
定評のあるProf.B.RazaviのCMOSアナログ回路の教科書の回路図に近いMOSトランジスタ。####3.環境
windows 10(64bit)
Jupyter Notebook 6.1.4
Python 3.8.5
schemdraw 0.11####4.方針
拡張性や互換性を考慮して独自には描かず、schemdrawの既存のPFet、NFetのスクリプトをベースに変更する。####5.MOSトランジスタ記述に必要な情報
Jupyter Notebookでは、
AWS IOT の shadow の値を読む方法
AWS IOT の shadow の値を読む方法です。
エンドポイント
>https://abcd6goq68zt4o-ats.iot.ap-northeast-1.amazonaws.com:8443もの
>violetCurl
“`bash:curl_get.sh
#
# curl_get.sh
#
# Sep/11/2021
#
HOST=”https://abcd6goq68zt4o-ats.iot.ap-northeast-1.amazonaws.com:8443″
THINGNAME=”violet”
URL=$HOST”/things/”$THINGNAME”/shadow”
#
curl –tlsv1.2 \
–cert ../certs/device.pem.crt \
–key ../certs/private.pem.key \
-X GET $URL
#
“`HTTPie
“`bash:http_get.sh
#
# http_get.sh
#
# Sep/11/2021
#
HOST=”https://abc
[Python3] 初心者の初心者による「リスト」基礎解説
#リストとは
**複数**の値を格納することができる機能です。
VBAでいえば、配列と同じようなものです。#リストの作成方法
“`python:リストの作成
# 以下がリストの書式です
[値1,値2,値3,….]# 以下が実際のリスト作成方法です
RandomNumbers = [1,2,3,4,10,15] # 数値の場合Fruits = [“orange” , “peach” , “banana” , “apple”] # 文字列の場合
Mixed = [“aaaa” , 10 , “bbbb” , 20] # 混在の場合
“`リストの話とは関係ありませんが、**文字列**を格納する場合は**””**の中に記載することを忘れずに!!
上記以外に、組み込み関数の**list()**を使うことでもリストを作成することができます。
“`python:list()を使用する場合
NumberList = list(range(-5,6))# 出力結果
[-5,-4,-3,-2
Windows 10 HomeへDockerをインストールしてDjango + PostgreSQL環境作る
以前まではwindows 10 Proでないと`Docker`使えませんでしたが、Windows 10 Home でもDockerが簡単に使えるようになっています。MacとかWindows 10 Proの導入はたくさんあるけど、長年Homeで使えなかったので今回記事にします。
`Django(Python)`の記事をよく書いていますのでwindows homeで環境を構築しようと思いますすでにDocker使ってて、`Docker + Django + PostgreSQL`の環境構築したい人は[DockerでDjangoを動かす](#dockerでdjangoを動かす)から見れば構築できると思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260345/a83977fe-6379-22af-a272-ae7445b05cb2.png)
# 環境
– Windows 10 Home 21H1
– Docker Desktop for Windows 4.0.0まあ、最
ServerlessFrameworkを触ってみた
ServerlessFrameworkのインストールから基本的な設定・操作方法を確認していきたいと思います。
今回はAWSをプロバイダとしてPython3でサービスを作成します。# ■ インストール
### # Serverless Frameworkのインストール
node.jsのインストールはnvmで行います。“`bash
# nvm インストール
# https://github.com/nvm-sh/nvm#installing-and-updating
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash# 最新のltsをインストールしてグローバルに設定
nvm install –lts
nvm use –lts# インストールされているか確認
node -v
npm –version# serverless frameworkのインストール
sudo npm install -g serverless
sls –version
“`
Python3について(@,デコーダーについて)
#デコーダについて
関数を装飾するとか、よく分からなかったので、自分で検証しました。
また、ふわっとしていますが、覚書として書きます。“`deko.py
def deko(func): #デコレータ
def tent():
print(“This”)
result = func() #これはpen()のこと
print(“a”)
return result
return tent@deko
def pen():#デコレーションされる関数
print(“is”)
return “Pen”if __name__ == “__main__”: #deko.pyで直接呼ばれた場合、Pen関数をプリントします
print(pen())>>>This
>>>is
>>>a
>>>Pen
“`1.@が付いている関数(今回だとpen())が実行される際に、print(“is”)ではなくdeko(func)が実行されます
2.deko(func)の中のfuncは、pen()の関数が実行されます
3.deko(func)の関数が終了すると、pen()に
NCBIのAPI(E-Utils)を使ってPMIDからDOIを取得(Python編)
NCBIの論文情報をAPI(E-Utils)を用いて取得し、ローカル環境でPythonで解析しましたので、その方法について記録します。
記載時:2021/9/10
環境:macOS Catalina(10.15.7)、Python 3.8.5#1.E-Utilsについて
E-Utilsを用いたGEOへのアクセスについては下記に概要が説明されています。
https://www.ncbi.nlm.nih.gov/geo/info/geo_paccess.html?fbclid=IwAR1DVyyt7XdftfKU_7r8YAuwZPZGgpWtOCXR6mRPQrV1xr0QLk-t0f2KAEQ
簡単に説明すると、例えばPMIDを引数として、論文タイトルやDOIを返り値として取得という作業をCUIで行うことができます。
#2.PUbMedから論文情報を取得してみる。
E-UtilsにはeSearch、eSummary、eFetch、ePost、eLink、eInfoなどのプログラムがあります。
今回は試しにeSummaryを使用して、引数として渡したPubMed IDか
AWS IOT にパブリッシュをするサンプル
次のページを参考にしました。
[AWS IoT Core -> デベロッパーガイド -> HTTPS](https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/http.html)エンドポイントは次のコマンドで調べます。
“`bash
aws iot describe-endpoint –endpoint-type iot:Data-ATS
“`トピックはポリシーで定められたものに限られます。
次のものが使えました。
デモを実行した時にこのポリシーが作成されました。>“`text
sdk/test/Python
sdk/test/java
topic_1
topic_2
“`“`bash:rest_publish.sh
#
# rest_publish.sh
#
# Sep/09/2021
#
HOST=”https://abcd6goq68zt4o-ats.iot.ap-northeast-1.amazonaws.com:8443″
TOPIC=”sdk/test/Pytho
Qiitaの記事をバックアップする(Python)
QiitaではAPIが公開されているので、これを利用して記事をバックアップします。
https://qiita.com/api/v2/docs
## 1. QiitaのAPIを利用する
### Qiitaのアクセストークンを取得する
Qiitaにログインした状態で、[[設定] – [アプリケーション]](https://qiita.com/settings/applications)にアクセスします。
個人用アクセストークンの「新しくトークンを発行する」をクリックします。![qiita_api_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125621/a2f29e72-d648-5a30-cb04-afaa83b387e3.png)
アクセストークンの説明を入力し、read_qiitaにチェックを入れ、「発行する」ボタンをクリックします。
![qiita_api_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaw
Python3について(return[戻り値]について)
#returnについて
関数の最後にいつも書いてありましたが、あまり意味は分かっていませんでした。
なんとなく理解したので、覚書的に書いておきます。##1.returnがない場合
“`.py
def aisatsu():
print(‘Hello’)x = aisatsu() #xに対して、あなたは今後aisatsu()ですよと指示している
>> Helloprint(x) #xがaisatsu()になっていれば、Helloが出力されるはず
>> None“`
このようにxにaisatsuを割り当てて、xを呼び出してもHelloはプリントされません。
なぜなら、このaisatsuの関数が直接呼ばれた時でないと関数の中身が動かないからです。
なので、xに関数を割り当ててもdef aisatsu():までしか呼び出されません。(※イメージです)##2.returnをつけた場合
“`.py
def aisatsu():
print(‘Hello’)
return (‘Hello’) #別の名前で呼ばれた時はこれを返してねx = aisatsu
[Github Actions] Python + Poetry
## こちらのコードを使って GitHub Actions を試す。
https://qiita.com/mykysyk@github/items/5f08658d0ca2f1c6b32a
## ソースを持ってくる
“`
mkdir -p /tmp/$(date +%Y%m%d) && cd $_
git clone https://github.com/mykysyk/zip-code.git
cd /tmp/$(date +%Y%m%d)/zip-code
“`### こんな感じになる
“`
/tmp/$(date +%Y%m%d)/zip-code
├── LICENSE
├── README.rst
├── poetry.lock
├── pyproject.toml
├── src
│ └── zip_code_app
│ ├── __init__.py
│ └── core.py
└── tests
├── __init__.py
└── test_zip_code_app.py
“`## テンプレート作成
①初めての投稿
初めてQiitaに投稿をさせてもらいます。
具体的な方法とか、よくわからないので、最初はお試しということで、、、#pythonを使ってHello World!!と出力させてみる。
プログラムを始めるとき、どんな言語でもたいてい初めはHello World!!の出力を行うと思います。
(自分もPythonやC言語、Javaを学びましたがそうでした。)
なので今回もお試しということでこれを行いたいと思います。
出力をさせるためには print()関数を使います。
使い方は以下の通りです。“`python:how_to_use_print_function.py
#print()関数の使い方。
print(出力させたい文字列)
“`
文字列というのは、今では説明を省かせてください(お試しなので、、、)
簡単に説明すると、ダブルクオーテーション(“)でくくった文字、
もしくは、シングルクオーテーション(‘)でくくった文字をPythonでは文字列といいます。
(ほかにも作成する方法はあるにはあるが、今回は紹介を省きます。)
それではこれらを使って出力させてみましょう!“`pyt
急にpip installで一部のライブラリのインストールが失敗するようになった件
# はじめに
この記事は2021年9月6日以降に、
pipでのインストールで以下の様なエラーが出て困っている人に向けて書いています。
(私の場合、GDALのインストールが失敗するようになりました)“`
Collecting GDAL==2.2.3
Using cached GDAL-2.2.3.tar.gz (475 kB)
ERROR: Command errored out with exit status 1:(~中略~)
Complete output (5 lines):
/usr/lib/python3.7/distutils/dist.py:274: UserWarning: Unknown distribution option: ‘use_2to3_fixers’
warnings.warn(msg)
/usr/lib/python3.7/distutils/dist.py:274: UserWarning: Unknown distribution option: ‘use_2to3_exclude_fix
PandasのデータフレームをRに読み込ませる
# やりたいこと
rpy2やpyperでPythonからRを呼び出せることは知っていた。しかし,Pythonで整形したデータフレームをRが読み込んでRStudio上などで解析するやり方が探せなかったので,以下にやり方を残しておく。# やり方
確認した実行環境– Python 3.9.0
– R 4.1.1
– pandas 1.2.5
– PypeR 1.1.2“`{python:converter.py}
import pyper
import pandas as pd
from pathlib import Path, PosixPath
from typing import Uniondef save_rds(df: pd.core.frame.DataFrame, file: Union[str, PosixPath]) -> bool:
strfile = str(file)
pathfile = Path(file)
# datetime型があると変換エラーが起こるのでstrにする
df = pd.concat([df.se
Python3 FlaskでMOCK的なAPIサーバを作る(5分で記載)
テストで受けられるサーバを作りたかった。
Mock立てればいいじゃん…て話なんですが、
npmのprismというものを使おうとして、`core.js@1.27` がというエラーが出続けまして…。
解決方法がわからなかったので、Pythonで立てました。エンドポイントは以下の3つだけです。
Python3とFlaskを準備すれば簡単に動きます。“`
localhost:5000/hoge
localhost:5000/healthcheck
localhost:5000/
“`
`/hoge`はPOSTされたデータをそのまま返すだけです。“`serv.py
from flask import Flask
from flask import request
app = Flask(__name__)@app.route(“/hoge”, methods=[‘POST’])
def postHoge():
#ヘッダの形にかかわらず返す。
return request.get_data()@app.route(“/healthcheck”, m
AtCoder参加記録No.5ーABC217
#ABC217
今回参加したABC217についての参加記録2021年9月4日(土)のAtCoder Beginner Contest 217でした。
https://atcoder.jp/contests/abc217
##結果
A,B,C問題を正解
レート:49→72 (+23) Highest!
順位:5793/ 8543
時間: A問題 7:31 B問題 16:10 C問題 27:55
パフォーマンス:281##詳細
###A問題
[問題](https://atcoder.jp/contests/abc217/tasks/abc217_a)提出コード(AC)
“`python:A問題_1.py
S,T =list(map(str,input().split()))
le=min(len(S),len(T))
A=[]
A.append(S)
A.append(T)
AN=sorted(A)if AN[0]==S:
print(‘Yes’)
else:
print(‘No’)
“`[詳細](https://atcoder.jp/co