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

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

Djangoで初期データをfixtureで登録・dump

# DjangoでDBにfixtureでデータ初期登録
初期データやテストで使うデータをデータベースに最初から用意しておきたいということがあります。
そんなときに使うのが`fixture`です。Djangoで初期データを登録する方法を書きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260345/bf15666a-caf9-6231-2322-884b6ba4e1aa.png)

“`django_docker/accounts/models.py
from django.db import models

class Customer(models.Model):
name = models.CharField(max_length=100)
phone = models.CharField(max_length=20)
email = models.CharField(max_length=255)
age = models.Integ

元記事を表示

【Python3】M1 Mac(Docker)で分散並列処理フレームワークRayのサンプルコードを動かす

## Rayとは
RayはPythonにおける分散並列処理を高速かつシンプルに書けるフレームワークで、既存のコードを並列化することも容易な設計となっています。

https://docs.ray.io/en/latest/index.html

Rayを使うことでmultiprocessingなどに比べ簡単にプロセスレベルの並列処理を記述することができます。Rayは2021年9月現在MacOSとLinuxをサポートしています。Windowsのサポートは実験段階であり、開発中です。

ローカル環境を構築する予定でしたが、既知のバグがあるらしく動かなかったので、仕方なくDocker環境を構築します。

## 環境

“`
macOS Big Sur 11.5.2
docker 20.10.7
python 3.7.7 (dockerコンテナ内)
“`

## M1MacにDockerDesktopをインストール

https://docs.docker.com/desktop/mac/install/

M1MacにDockerDesktopをインストールするには、上のリンクを踏んでダ

元記事を表示

Pythonのgoogletransを用いた翻訳

## はじめに
 今回はgoogle翻訳のAPIであるgoogletransを用いて、英語を日本語に翻訳するプログラムを作成した。その時に学習した内容をここにメモする。

## googletransとは
 googletransとはGoogle翻訳の文字列をhttp方式で渡すことで翻訳した内容が返ってくるAPIである。今回はこちらを用いた翻訳プログラムをPythonによって作成した。

## 準備段階
 今回の環境ではwsl2にPython3.8.1で行った。まずはpythonのモジュールのインストールについては下記のコマンドによって行った。

~~~
pip3 install googletrans==4.0.0rc1
~~~

バージョンの指定をしない場合に、googletrans3.0.0がインストールされてしまいそこで躓いた。3.0.0だと ‘AttributeError’ が生じてしまうため、注意が必要になる。

##プログラミング
 今回使用したプログラミングを以下に記す。

~~~python:translate.py
from googletrans import T

元記事を表示

リストから名前指定remove()したときに同じ名前の要素が複数あったらどうなるか

# 気になったこと
python3のリスト操作で、remove()関数を使って指定した要素を削除することがありますが、リストの中に同じ要素があった場合にどのような消え方をするのかふと心配になったので確認しました。

# 確認結果
「apple」の文字列から「p」をremove()しましたが、消えた「p」は1個だけでした。安心しました。

“` python3
>>> test_list = list(“apple”)
>>> print(test_list)
[‘a’, ‘p’, ‘p’, ‘l’, ‘e’]

>>> test_list.remove(“p”)
>>> print(test_list)
[‘a’, ‘p’, ‘l’, ‘e’]
“`

元記事を表示

【Flask】5分で仮想環境構築と「Hello World!」の表示

## 環境
+ Microsoft Windows 10.0.19042.1165
+ Python 3.9.4
+ Flask 1.1.2

## ディレクトリ構成

“`
flask_test/
├─ venv/
└─ app.py
“`

## 手順
Pythonはインストール済みとする

https://www.python.org/

仮想環境用ディレクトリ`flask_test`を作成(`mkdir [フォルダ名]`)

“`
mkdir flask_test
“`
`flask_test`に移動(`cd [フォルダ名]`)

“`
cd flask_test
“`

仮想環境を作成(`python -m venv ./[フォルダ名]`)

“`
python -m venv ./venv
“`

仮想環境を有効化(`[フォルダ名]¥Scripts¥activate`)

“`
venv¥Scripts¥activate
“`
–> 先頭に`(env)`が付く

:::note
無効化するときは「deactivate」と入力
:::

仮想環境

元記事を表示

【Python】argparse で `–help` や `–version` のようなコマンドを自作する

[argparse](https://docs.python.org/ja/3/library/argparse.html) を使って、一般的な CLI における `–help` や `–version` のような動きをするコマンドを実装してみました。

具体的には以下の要件です。

– 他の引数やオプションよりも優先して実行される
– 実行された後、即時終了する

## 実行環境

`Python 3.9.7` で正常に実行されることを確認しました。ある程度新しいバージョンであれば動くと思います。

## サンプルスクリプト

`-S` もしくは `–system` をオプションとして与えられたとき、`print(sys.version)` を実行して処理を終了するシンプルなスクリプトです。

“`python:sample.py
import sys
from argparse import SUPPRESS, Action, ArgumentParser

def show_system_version():
print(sys.version)

class

元記事を表示

pipenv で Django の開発環境をパパッと用意する

Django プロジェクトの開発を進める際、ひとまず別プロジェクトを用意して動作を確認してみたくなることがある。そういう場合を想定し、「パパッと Django 開発環境を用意するためのメモを残そう」と思って書いたのが本記事。

## 本記事での最終的なディレクトリ構成

ルートディレクトリを `pipenv_django` として、設定ファイル群は `config` ディレクトリ内に置き、 `myapp` ディレクトリ内に model や view などに関するファイルを置く想定。

“`
pipenv_django
├── Pipfile
├── Pipfile.lock
├── config
│   ├── __init__.py
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── manage.py
└── myapp
   ├── __init__.py
   ├── admin.py
   ├── apps.py
   ├── migrations
   │   └── _

元記事を表示

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, Extension

setup(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, getLogger

basicConfig(level

元記事を表示

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

もの
>violet

Curl

“`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

元記事を表示

OTHERカテゴリの最新記事