Python3関連のことを調べてみた2022年04月16日

Python3関連のことを調べてみた2022年04月16日

【python】ezdxfを使ってみよう#1~図面作成と設定編~

# ezdxf~図面作成と設定編~
**ezdxf**というpythonライブラリを使って、**dxfの自動作図**を研究します。
自分のプログラミングノートを兼ねて、シリーズでまとめていきます。
この章ではまず**簡単なdxfデータを作成し、初期設定の確認をします。**
1. **ezdxfのインストール**
1. **自動作図は最短5行!**
1. **エディター内でdxfを即確認できる**
1. **便利なsetupを設定**
1. **setupの中身を確認**

開発環境
windows 10(64bit)
Python 3.8.10
ezdxf 0.17.2

## ezdxfのインストール
“`Python:pip install ezdxf
pip install ezdxf
“`
Excelに記録した座標を読み込んでの作図や、dxfを読み込んでExcelにまとめるなどをするには、openpyxlやpandasなどのライブラリを用いるようになっていきます。
## 自動作図は最短5行!
**線を一本作図した図面を作成します。**(図形の書き方の詳細は別の項目でまと

元記事を表示

Effective Pythonまとめ 2. List and Dictionaries (Item11~Item18)

Pythonのコーディング力を引き上げるために、[Effective Python Second Edition(英語版)](https://www.amazon.co.jp/dp/B07ZG18BH3/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)を用いて学習しています。
(日本語版は訳が機械的でわかりづらいというレビューが多かったので、英語版を利用することにしました。)
今回は、第二章のList and Dictionaries (Item11~Item18)について、要点をまとめていきます。

:::note warn
個人的に解釈した内容を記述しているため、本の内容と厳密には一致しない表現が含まれる可能性があります。
:::

# Item11: Know How to Slice Sequences

### 基本的なsliceの使い方
Pythonでは、list, str, bytes型などをスライスする際には、`somelist[start:end]`が利用できる。
この際、startに指定したindexに対応する要素は実行

元記事を表示

【Python】1~4次までの地域メッシュコードを計算する

# はじめに

緯度経度から、地域メッシュコードを1~4次まで計算するPythonのPGを作成しました。

# メッシュコードとは
緯度経度を基に四角の区域に分けたものです。交通量分析やPTでメッシュコード単位で分析をしているとよく出てきます。
詳細は下記を参照してください
– [総務省統計局 地域メッシュ統計の特質・沿革](https://www.stat.go.jp/data/mesh/pdf/gaiyo1.pdf)
– [地域メッシュまとめ](https://qiita.com/nkuchiii/items/a3a83d5a2cdd5d8d630c)

# 環境
– python version 3.7.4
– windows10

# 実装
“`python:test.py
# coding: UTF-8
# メッシュコード変換設定用変数
MILLISECOND = 3600000 # 計算の単位(ミリ秒)に変換して計算する

#*************************************************************************

元記事を表示

ImportError: cannot import name ‘xxx’ from partially initialized moduleの対処法

# エラーが出た状況
このエラーが出たのが1つのファイルに色々コードを記述して、だいぶごちゃごちゃしてきたので、複数ファイルに分けようとしていました。
そしたらファイルを複数に分けた後、「ImportError: cannot import name ‘xxx’ from partially initialized module」が出てきやがりました。

# 原因:循環import
このエラーの原因は循環importでした。
循環importとはなんだよという方のために説明いたします。

ファイルA
“`
import ファイルB
“`

ファイルB
“`
import ファイルA
“`

めちゃくちゃ簡潔に書くとこんな感じです。
ファイルAでファイルBをインポート、ファイルBでファイルA。
両方のファイルでファイルを呼び出し合っていることによりこのエラーが発生してあります。

この両方からファイルを呼び出し合っているところを解決してあげるとエラーが消えました🤗

# 終わりに
初心者エンジニアですので何かありましたらコメントしていただけるとありがたいです!☺️

元記事を表示

自動でvenvを(de)activateする

# Introdaction
Pythonで仮想環境作ったはいいけど毎回activate/deactivateするのが面倒臭い。
自動化させましょう。

## 環境
Python3.3 以降
Ubuntu 20.04

## 特徴

– プロジェクトディレクトリに移動した際に、直下に仮想環境があれば、自動でactivateする
– プロジェクトディレクトリの外へ`cd`する際には自動的にdeactivateする
– 同一プロジェクトディレクトリ内で`cd`してもdeactivateしない
– 仮想環境名は任意に設定できる

※参考にさせていただいたのはこちら[[1−3](#references)]。
こちらのページで示されている方法を実装すればそれで十分だったが、プロジェクトディレクトリ下にあるサブディレクトリに移動してもdeactivateされてしまったり、仮想環境名を固定しなければいけなかったりと、ちょっと自分の使い方では痒所に手が届かなかったので自分好

元記事を表示

ubuntu20 NEWLAMP

“`lamp.sh
sudo apt-get update
sudo apt-get upgrade

sudo apt-get -y install libapache2-mod-php
sudo apt-get -y install apache2
sudo apt-get -y install apache2-dev
sudo systemctl enable apache2
sudo systemctl restart apache2

sudo add-apt-repository ppa:ondrej/php
sudo apt-get install build-essential
sudo apt-get install -y php
sudo apt install php8.1 php8.1-cli php8.1-common php8.1-mbstring php8.1-gd php8.1-intl php8.1-xml php8.1-mysql php8.1-zip php8.1-xsl php8.1-curl
sudo apt install -y nodej

元記事を表示

Jupyter NotebookでなくJupyter Labを起動する方法

Windows環境でAnacondaをインストールしてJupyterを使おうとしたらJupyter NotebookとJupyter Labがあることに気づいた。
スタートメニューから起動するとJupyter Notebookが起動するが、新しいのはJupyter Labらしいので設定を変更してJupyter Labが起動するように変更した。

1. Anaconda Promptを開いて設定ファイルを生成。
“`python
jupyter notebook –generate-config
“`
2. `C:\Users\ユーザ名\.jupyter\jupyter_notebook_config.py`が作られているので開く。
3. 下記のところを`lab`に書き換える。
“`python
c.NotebookApp.default_url = ‘/lab’
“`

設定ファイルは.pyなので行頭に余計なスペースなどが入るとエラーで設定が有効にならない。

元記事を表示

Pythonの初期化処理

# __init__メソッド
 これはクラスからインスタンスを生成するために使用されるメソッドで、クラスの初期化の処理を担っています。
 Rubyで例えるとinitializeメソッドと同じで次のように記述するはずです.
“`ruby
class クラス名
def initialize(a,b,c)
@a = a
@b = b
@c = c
end
end
“`

一方Pythonでは以下のように記述します
“`python
class クラス名:
def __init__(self,a,b,c):
self.a = a
self.b = b
self.c = c
“`
と記述します。
これによりクラスのインスタンスを生成され、a,b,cの値は初期で使用される値となります。
pythinでは__init__メソッドの引数の中にselfが入っていますが、これによりクラスのインスタンスを生成しているので、
“`python
def __init__(self, ~)
“`
と覚えておくとよいかもしれま

元記事を表示

[Python3 / pynamodb] create_table時に Table read and write throughput must be at least 1, and cannot be null

# 発生したエラー

> E pynamodb.exceptions.TableError: Failed to create table: An error occurred (ValidationException) on request (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) on table (some_data) when calling the CreateTable operation: Table read and write throughput must be at least 1, and cannot be null
>
>.venv/lib/python3.8/site-packages/pynamodb/connection/base.py:651: TableError

`Table read and write throughput must be at least 1, and cannot be null`がエラーの原因っぽいことはすぐにわかった。
けれど、`Table read and w

元記事を表示

AWS Cloud9でPython基礎~ファイルの読み書き

2022/4/6(水)に行われたAPNパートナー限定セミナー「Pythonの基礎から学ぶ!サーバーレス開発はじめの一歩」で学んだPython部分の復習。

# 1.AWS Cloud9セットアップ
Cloud9を起動。適当に名前を付けて他はすべてデフォルト値でCloud9を起動する。

# 2.ファイルの読み書き

## 2-1.Pythonでファイルを読み込む

組み込み関数[open()](https://docs.python.org/ja/3/library/functions.html#open)と[with文](https://docs.python.org/ja/3/reference/compound_stmts.html#with)を使う。

Cloud9上で、以下2ファイルを作成する。

“`py:input_text_file.py
def open_input(fileA):
with open(fileA, ‘r’) as f:
textA = f.read() # .read()メソッドを使ってファイルの内容を読み込み

元記事を表示

python3を用いたgifアニメの解像度変更

# python3を用いたgifアニメの解像度変更
先日、pixivに作成したgifアニメをアップロードしようとしたら、ファイルサイズの制限に引っかかってしまった。そこで、画像の解像度を落とし、ファイルサイズを小さくしようと考えた。
ブラウザ上でgifアニメの解像度を縮小するサービスはいくつか見つかったが、どれもファイル容量の制限などにより使いにくかった為、自分で作成した。

## 追記
– 2022-04-14 解像度変えるだけなら[ffmpeg](https://trac.ffmpeg.org/wiki/Scaling)で十分みたいです。

## 開発条件
– python3
– scikit-video
– opencv
pip経由でscikit-videoとcv2を入れる

## 必要なライブラリをインポート

“` python3
from skvideo.io import vread
import cv2
from PIL import Image,ImageDraw
“`

## gifを読み込む

“` python3
from skvideo.io impo

元記事を表示

Windows PC へのPython3 導入手順

# 1.はじめに

Windows10 の環境に Python3 を導入します。

※ Mac PCへの Python3 導入手順は、以下リンク先をご参照ください。

・Qiita:Mac PC へのPython3 導入手順
https://qiita.com/Haruka-Ogawa/items/b1bf5ad9b28d44702a64

# 2. Python3 導入

### ① ダウンロード

まず、公式サイトからPythonを ダウンロードします。
最新版は以下リンク先を開くと取得することができます。

・Python:Download the latest version for Windows
https://www.python.org/downloads/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/174250/0a081064-85f4-1ebe-cfdb-7374cd5f5d93.png)

今回は Python **3.10.4** をダウンロードしま

元記事を表示

【init】Google ColabでLINEおうむ返しBOTを爆速で動かす

# 下準備
– Google Colabを開く(https://colab.research.google.com)
– LINE Channel SecretとChannel Access Tokenの取得(https://developers.line.biz/console)
※参考: [Messaging APIを始めよう](https://developers.line.biz/ja/docs/messaging-api/getting-started)
– ngrokのYour Authtokenの取得(https://ngrok.com/)

# 定数の定義
“`python
# LINEのチャネルシークレット
LINE_CHANNEL_SECRET = ‘下準備の値’
# LINEのチャネルアクセストークン
LINE_ACCESS_TOKEN = ‘下準備の値’
# ngrokのAuthtoken
NGROK_AUTHTOKEN = ‘下準備の値’
“`

# 必要なライブラリのインストール&ngrokの初期化
“`
!pip install flask
!pip

元記事を表示

量子デバイス実機を使ってみよう

Qiskitを用いて量子回路を作成し、量子デバイス実機で量子測定を行う

**前提知識**
量子力学、線形代数

**準備**
準備はAnacondaインストール→仮想環境の作成・Qiskitのインストールの順で行います。準備ができたらAnaconda-NavigatorあるいはVScodeのjupyternotebookを起動させてQiskitがインストールされている仮想環境を選択します。

Anacondaのインストールに関して
[Anacondaインストール](https://www.python.jp/install/anaconda/index.html)
仮想環境の作成とQiskitのインストールに関して
[はじめに](https://qiskit.org/documentation/locale/ja_JP/getting_started.html ) 
[Qiskitのインストール](https://qiskit.org/documentation/locale/ja/install.html)
JupyterNotebookに関して
[Jupyt

元記事を表示

FastAPI: CORS の使い方

プログラム

“`py:main_cors.py
# ——————————————————————
# main_cors.py
#
# Apr/12/2022
# ——————————————————————
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware

# ——————————————————————
app = FastAPI()

origins = [
“http://localhost”,
“http://localhost:8080”,
]

app.add_middleware(
CORSMiddleware,
allow_origins=origins,

元記事を表示

Cloud FunctionsのHTTP起動の認証について

Google CloudのCloud Functionで起動トリガーをHTTPにした場合、誰でも処理を起動できないようにHTTPアクセスに対してデフォルトで認証が必要となります。この記事では、PythonでCloud FunctionsにHTTP(認証あり)接続を行う方法を紹介します。
 なお、基本的には[googleドキュメント](https://cloud.google.com/functions/docs/securing/authenticating?hl=ja#functions-bearer-token-example-python)のプログラムによるトークン生成を参考にしていますが、使用しているライブラリを「urllib」→「requests」に変更しています。(個人的な趣味の問題)

# 下準備
HTTPトリガーのCloud Functionsを準備します。これはサンプルなので関数などはデフォルトのままで準備してもらえば大丈夫です。僕はPython3.9をランタイムとして選択しました。![キャプチャ.JPG](https://qiita-image-store.s3

元記事を表示

Pythonでスレッド・プロセスプールについて

Pythonは2つ以上のスレッドが同時に実行される時、複数のスレッドが1つのリソースを同時にアクセスするときに発生しうる問題を防止するためにGIL(Global Interpreter Lock)というものを導入しています。
つまり、スレッドが実行されるとき、プログラム内のリソース全体のロックがかかります。

結局、Pythonプログラムでは同時にいくつかのスレッドが実行されても、GILによって1つのスレッドだけしか実行されません。
マルチスレッドの場合、ContextSwitch に必要なリソースまで考慮すると、単一スレッドよりも性能が落ちることが確認できます。

そのため、マルチスレッドによる分散処理は Python では意味がなく、分散処理を通じて性能の利益を得るためにはマルチプロセスを使用しなければなりません。
しかし、プロセスを追加に生成することはOSとしては非常に費用がかかることです。

Python 3.2 から追加された`concurrent.futures`モジュールは別途のスレッドオブジェクトを作成せずに、関数の呼び出しをオブジェクト化して他のスレッドやプロセスでこ

元記事を表示

Can’t connect to MySQL server エラーの解消

mac上で、pythonを利用してmysqlにデータを書き込もうとしたところ、下記エラーが発生しました。

“`
mysql.connector.errors.InterfaceError: 2003: Can’t connect to MySQL server on ‘localhost:3306′ (61 Connection refused)
“`

実行したファイルは、下記になります。

“`update_sql_from_csv.py
### インポート
import csv
import mysql.connector

### ファイルオープン
file = open(“bme280_db.csv”, “r”)

### ファイル読み込み
members = csv.reader(file)

### DB接続
cnx = mysql.connector.connect(host=’localhost’, user=’root’, password=”, database=’bme280db’)

### カーソル作成
cursor = cnx.curso

元記事を表示

【AtCoder解説】PythonでABC247のA,B,C,D,E,F問題を制する!

**ABC247**の**A,B,C,D,E,F問題**を、**Python3**でなるべく丁寧に解説していきます。

ただ解けるだけの方法ではなく、次の3つのポイントを満たす解法を解説することを目指しています。

– シンプル:余計なことを考えずに済む
– 実装が楽:ミスやバグが減ってうれしい
– 時間がかからない:パフォが上がって、後の問題に残せる時間が増える

ご質問・ご指摘は**コメント**か**ツイッター**、**マシュマロ**、Discordサーバーまでお気軽にどうぞ!

**Twitter: [u2dayo](https://twitter.com/u2dayo)**
**マシュマロ: https://marshmallow-qa.com/u2dayo**
**ほしいものリスト: https://www.amazon.jp/hz/wishlist/ls/2T9IQ8IK9ID19?ref_=wl_share**
**Discordサーバー(質問や記事の感想・リクエストなどどうぞ!) : https://discord.gg/jZ8pkPRRMT**
よかったら**LGTM

元記事を表示

コンテキストマネージャの型ヒント

## 概要
with構文で使われる、任意のコンテキストマネージャは[contextlib.AbstractContextManager](https://docs.python.org/3.10/library/contextlib.html#contextlib.AbstractContextManager)型の変数に代入できる。​**AbstractConrextManagerを継承している必要はない**​。(mypy v0.942で確認)

`AbstractConrextManager`を継承していないのであればエラーになるべきで、次のようなプロトコル型が必要になると思うのだがどうなんだろう?

“`py
T = TypeVar(“T”, covariant=True)

class ContextManager(Protocol[T]):
def __enter__(self) -> T:

def __exit__(
self,
exc_type: Optional[Type[BaseExceptio

元記事を表示

OTHERカテゴリの最新記事