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

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

さっきまで動いてたのに、docker-compose up がうまく行かなくなり “Can’t connect to MySQL server on ‘db’ (115)” と言われた

#エラー
>
root@…….. :/code# python manage.py makemigrations
/usr/local/lib/python3.7/site-packages/django/core/management/commands/makemigrations.py:109: RuntimeWarning: Got an error checking a consistent migration history performed for database connection ‘default’: (2002, “Can’t connect to MySQL server on ‘db’ (115)”)

などと言われ、dbサーバのbashに入ってデータベースの中身を見てみると、、、

“`bash:bash(mysql)
mysql> use django_docker
Database changed
mysql> show tables;
Empty set (0.00 sec)
“`

何もなかった!

#解決法

ということでリセットして

元記事を表示

Python3: AWS IOT の Device Shadow

こちらのスクリプトのいくつかを、Boto3 で書いてみました。
[AWS IOT の Device Shadow](https://qiita.com/ekzemplaro/items/1d6bbc68703aa646380f)

エンドポイントは次のコマンドで調べます。

“`bash
aws iot describe-endpoint –endpoint-type iot:Data-ATS
“`

エンドポイント が次の場合のサンプルです。

>https://abcd6goq68zt4o-ats.iot.ap-northeast-1.amazonaws.com

もの

>sample_sep26

デバイスの状態が OFF であることを通知

“`py:report_off_thing.py
#! /usr/bin/python
# coding: utf-8
#
# report_off_thing.py
#
# Sep/28/2021
# ————————————————————

元記事を表示

Pythonで10進数→N進数変換とN進数→10進数変換

## N進数から10進数への変換
`int()`関数の第2引数に指定した基数から10進数に変換してくれる

“`
print(int(‘100’, 2)) # 4
print(int(‘100’, 3)) # 9
“`
2つ目の引数には`2〜36`までの値を指定しないとエラーとなる

## 10進数からN進数への変換

### 2進数、8進数、16進数への変換

“`
base10 = 10
print(format(base10, ‘b’)) # 1010
print(format(base10, ‘o’)) # 12
print(format(base10, ‘x’)) # a
print(format(base10, ‘b’)) #
“`
変換後の型は文字列型である
2進数はbinaryの略で`b`
8進数はoctalの略で`o`
16進数はhexadecimalの略で`x`

### 2進数、8進数、16進数以外への変換
`numpy`をimportして`base_repr関数`を使うと良い

“`
import numpy as np

元記事を表示

Tabnetはどのように使えるのか

## はじめに
最近、KaggleでTabnetというニューラルネットワークモデルが流行っていると知りました。
テーブルデータコンペといえばGBDT最強のイメージでしたが、ここでもニューラルネットワークモデルが台頭しつつあるようです。そこで今回は、Tabnetについて

– どんな嬉しさがあるのか
– どのように使うのか

という観点から、論文の要点とリポジトリの使い方について調べてみました。

## Tabnetとは

### 概要
Tabnetは、テーブルデータ向けのニューラルネットワークモデルです。
決定木ベースのモデルの解釈可能性を持ちつつ、 大規模なテーブルデータに対して高精度な学習が可能です。
特徴量の作成を必要としないエンドツーエンドの学習モデルです。

### リファレンス

#### 論文
Tabnetの論文は、Google Cloud AIチームによって発表されました。

https://arxiv.org/abs/1908.07442

Tabnetは[Google Cloud AI Platform の組み込みアルゴリズム](https://cloud.goog

元記事を表示

【pyenv-win】pyenv を使って Anaconda をインストール

## 環境
+ Microsoft Windows 10.0.19042.1165
+ Git 2.33.0.windows.2(コマンドは Git Bash で実行)
+ pyenv 2.64.11

## 現象
pyenv に Anaconda をインストール方法を調べると、`pyenv install -l` でインストールできるバージョンを確認し、`pyenv install anaconda3-5.3.1` のようなコマンドを実行することでインストールできるようだ。しかし、私の環境では `pyenv install -l` を実行しても ‘anaconda’ の文字が見当たらなかった。

## 原因
pyenv-win が Anaconda のインストールをサポートしていないのが原因のようだ。

> kirankotari commented on 25 Jul 2020
we are not supporting this feature yet. Need sometime.([link](https://github.com/pyenv-win/pyenv-win/i

元記事を表示

Pythonのimport方法まとめ

## 1. 概要
長年PHPを使用してきた私には、Pythonではパッケージのimportに毎回悩まされます。
なので、importの方法とコールの方法をまとめました。

## 2. 原則
1. importできるのはパッケージ、モジュール、クラス、関数、変数 (メソッドはimportできない)
1. importした名前でコールする ⇒ “import” の右側に書いた名前がコールする時の修飾子になる

## 3. 例

### 1. 関数 os.path.join()を使いたい場合
os.pathパッケージはposixpath.py (Windowsの場合はngpath.py) に関数群が定義されている

“`Python
import os
# 修飾子はos、path.joinがコールする関数名
path = os.path.join(“/”, “var”, “opt”)
“`
“`Python
import os.path
# os.pathが修飾子、joinがコールする関数名
path = os.path.join(“/”, “var”, “opt”)
“`
“`

元記事を表示

ModuleNotFoundError: No module named ‘allauthlogin’ が出た

>
ModuleNotFoundError: No module named ‘allauthlogin’

settings.py のINSTALLED_APPSで以下のようなコードを書いていたら、`python manage.py makemigrations` で上のようなエラーが発生した。

“`python3:setting.py
INSTALLED_APPS = [
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,

“””allauth”””
‘login.apps.LoginConfig’,#login app
‘django.contrib.sites’, #for djnago-allauth
‘allauth’,

元記事を表示

discordBOTを作ろう(Python)

#はじめに
DiscordのBOTを作ってみたいと思い、この記事を書きました。
これからBOTを作りたい方の手助けにでもなれば幸いです。
#手順
1,BOTのアカウントを用意

2,discord.pyのインストール

3,ソースを書く

大雑把に書きましたが一つずつ丁寧に行なっていきます。
#1,BOTのアカウントを用意
[こちら](https://discord.com/developers/applications)から右上のNew…を押します。
![スクリーンショット 2021-09-25 20.22.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1925390/39458344-b8c7-bca4-3245-8d33708945f2.png)
そうすると上のようになるので名前をつけます。なんでもいいです。
次に、左のSETTING欄のbotをクリック。そこのAdd botを押します。
![スクリーンショット 2021-09-25 20.24.14.png](https://qiita

元記事を表示

【pyenv-win】pyenv のインストールと実行

pyenv-win: Windows 用の pyenv

https://github.com/pyenv-win/pyenv-win

(記事中の引用はすべて上記ページの README.md から)

## 環境
+ Microsoft Windows 10.0.19042.1165
+ PowerShell 5.1.19041.1237
+ Git 2.33.0.windows.2

## pyenvとは
> pyenv is a simple python version management tool. It lets you easily switch between multiple versions of Python.
(訳:pyenv はシンプルな Python のバージョン管理ツールであり、Python の複数のバージョンを簡単に切り替えることができる。)

## インストール
次のいずれかの方法で pyenv-win をインストールする

+ pip を使用
+ zip ファイルを使用
+ Git を使用
+ Chocolatey を使用

### pipを使用

元記事を表示

PyMuPDFでページの内容をJSON形式で抜き出そうとしたら”Object of type bytes is not JSON serializable”って出たので直した

文字のフォントとかの指定を取る必要があったのでJSON形式で抜き出してみました。
んが、”Object of type bytes is not JSON serializable”ってでるので、何とか直してみたのが以下のコード。
default=format_for_jsonと指定しているのがミソ。

“`Python
import base64
import json
import fitz

def format_for_json(obj):
encoded = base64.b64encode(obj)
decoded = encoded.decode(‘utf-8’)
return decoded

doc = fitz.open(“hogefuga.pdf”)
for page in doc:
page_dic = page.get_text(“dict”)
json_test = json.dumps(page_dic, ensure_ascii=False, default=format_for_json)
print(

元記事を表示

pythonのパッケージ作成でのエラー対応

環境
Ubuntu 18.04
python3.8

pythonでパッケージを作り配布する際、今までexeファイルに変換しないといけないのかと思っていました。
しかし、以下のコマンドを実行するとパッケージを作成できることを学びました。
““

““
python3 setup.py sdist
““
初回これを実行すると以下のエラー発生しました。

““
Traceback (most recent call last):
File “./configure”, line 22, in
from distutils.spawn import find_executable
ModuleNotFoundError: No module named ‘distutils.spawn’
““

調べたところpythonのpython3-distutilsをインストールしないといけないことが分かり。
インストールしました。
“`

““
apt install -y python3-distutils

““
インストー

元記事を表示

【Python】苦闘、丸3日。Google Cloud Function (コード実行環境)を使って、Twitterの自動リツイートを実装した話。

こんばんは!
表題の件ですが、こんなの簡単に出来るだろうと思っていたのですが、非常に嵌りました。
詰まったところを含めて、設定及びコードを公開します。
正直、かなり試行錯誤しました。間違っている所がありましたら、是非、御指摘ください。 私の苦難が皆様のお役に立てます様に。。。。

1.状況
一週間前に下記の記事を書きました。
ローカル環境で、Twitterのツイートを自動RetweetするBOTを、Pythonで構築しました。
⇒ [Python] Tweepyモジュールで、Tweeterのツイートを自動でretweetするBOTを超簡単に作成する方法 https://qiita.com/naiveprince0507/items/ea66eab7422fa8c682f5

自分のローカル環境では順調に動くのですが、当然ですが、PCの電源を落としたりすれば、プログラムが動かなくなります。これでは、BOTとしてはイマイチですよね。
と言う事で、クラウド環境で、このコードを、24時間/365日、動かし続けようと言うのが、今回のプロジェクトになります。

2.Google Cloud Fu

元記事を表示

【Python】欲しいサイズの壁紙用画像をフォルダ内から取り出す

## はじめに
画像フォルダ内に種々雑多の形の画像があって,PC用やスマホ用の壁紙を探すのにちょっとした手間を感じたことはありませんか?求める条件の画像を選び出す簡単なプログラムを今回は書きました。

## 使うサードパーティーパッケージ
* OpenCV

画像処理をあれこれするためのオープンソースライブラリ。
各動作環境に合わせてインストールしてください。

## 実際のプログラム

“`python
import cv2
import sys
import shutil
from pathlib import Path

# 絶対パスで入力する
target_dir = Path(sys.argv[1])
save_dir = Path(sys.argv[2])

# もし保存用ディレクトリが無かったら作成しておく
if not save_dir.exists():
save_dir.mkdir()

# 条件にマッチする画像ファイルをリストに追加
# 今回はPC用の画像
target_pic_list = []
for pic_path in target_dir.g

元記事を表示

Python3エンジニア認定基礎試験合格に向けて

機械学習やAIの話題が流行する中で、本屋に行くとPythonのテキストも充実していることをよく目にすると思います。
シンプルなコードで機械学習を実践できる内容が紹介されているのでPythonの学習開始する方も多くいるのではと感じています。
私自身もそのように感じる中で、Pythonのスキル認定を取りたいと思い学習して合格しました。
合格までので学習方法やノウハウなど、これから受験される方の参考になればと思い投稿することにしました。

Python3エンジニア認定基礎試験 試験概要

基礎試験


受験場所:全国にあるテストセンター
試験内容:CBT方式 40問 1000点満点(合格ライン700点)
参考テキスト:Pythonチュートリアル(O’REILLYから出版)
模擬試験:PRIME STUDY、DIVE INTO EXAM

この記事では、コードの内容(if、for、クラス)などは説明はないです。
あくまでも学習してコードを理解して定着、合格までの私の方法を参考にしてもらえればと思います。

まず参考テキストのPy

元記事を表示

Python3: 加算をする API

AWS APIGateway と Lambda を使って加算をするプログラムを作成します。

Lambda のプログラム

“`py:sumup_function.py
# -*- coding: utf-8 -*-
#
# sumup_function.py
#
# Sep/25/2021
#
# ——————————————————————–
import sys
import json

# ——————————————————————–
def lambda_handler(event, context):
sys.stderr.write(“*** lambda_handler *** start ***\n”)
print(“Received event: ” + json.dumps(event, indent=2))
print(“event[‘aa’] = ” + str(

元記事を表示

Python信者だけどプログラミングを最初に学ぶのにPythonはまずいと思う件について

#はじめに
どうも。
いつもはPythonに関する記事を書いている者ですが、今日は少し打って変わってタイトルにあるようなことを書いていきます。
私が勝手に思っていることなので、間違っていることだらけかもしれませんが、良ければ見ていって下さい。
#そもそもPythonとは

![Python_logo_and_wordmark.svg.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/835335/945ab2fb-bef0-1540-e71d-32e3be2ab670.png)

そもそもPythonとは1990年代に公開されたプログラミング言語で、分かりやすさ、読みやすさが特徴的な言語です。
また、ライブラリが非常に豊富で高い汎用性や実用性があります。用途としては機械学習、Webシステム、システム管理ツールなど多様です。私もよく研究している制御工学の検証や、スクレイピングなどいろいろやっています。
一言で言うと、「ガチで便利かつコードが組みやすい言語」です。
とまあ、このように最高の言語の一つでありますが

元記事を表示

Pythonで写真がドット絵へ変換!ノベルゲーム背景のために。

Unityで作っているノベルゲームのために、いい背景のように面白い方法を調べました。Pythonのライブラリと小さいスクリプト、写真からいいドット絵風に画像ができます。

# なぜ写真から?

ノベルゲームの中で、そんな仕方は見たことある。一番人気な例はきっと「ひぐらしのなく頃に」ですよね。

ゼロから絵を書かないように、撮った写真から背景の作りがもうちょっと簡単になるだろうと思いました。写真編集ソフトの中でフィルタ-を使ったら、絵を似るように修整ができるですが、いい結果を目指すは難しそうね。

とりあえず、僕は絵を書くの腕が悪いのでそんな技術を思い出した。日本に住んでたときから取った写真が多いから背景で使えませんかっと思いました。

# なぜドット絵へ?

最初、ドット絵の利用はもちろん、レトロな感じですよね。ゲームのUIもうドット絵でやってみたいっと思った、いいチャレンジですから。

ゲーム美術表現の選択のさらに、リアルからドット絵へ変換にはメリットが多い。

たとえば、、、

* 有名なブランドのロゴや名前がちょっとだけ認めるので、商標権の問題が無くなる。
*

元記事を表示

jsonファイルの読み書き Python2・Python3

jsonファイルを読む方法です。

よく使うのでメモ

まずjsonファイルを作成

“`json:test.json
{
“a”:”1″,
“b”:”2″,
“c”:”3″,
“d”:”4″,
“e”:”5″
}
“`

次に,jsonファイルを読み書きするプログラムです。

“`python:json_read_write.py
import json

def read_json_file(file_name):
with open(file_name, ‘r’) as f:
json_load = json.load(f)
return json_load

def write_json_file(file_name, dict_data):
with open(file_name, ‘w’) as f:
json.dump(dict_data, f, indent=2)

if __name__ == ‘__main__’:

f_name = “test.json”
data = read_json_fi

元記事を表示

【解決】django.core.exceptions.ImproperlyConfigured: Requested setting SECRET_KEY, but settings are not configured のエラーが出た。

>
django.core.exceptions.ImproperlyConfigured: Requested setting SECRET_KEY, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

というエラー文が出た。

エラー文に書いてあるようにsettingsファイルを指定してやる。
具体的にはrunserverコマンドに`–settings=[メインのアプリケーション名].settings`を追加した。
docker使っているからこんなエラーが出たのかなと思った。よーわからんけどね。。。

“`yml:docker-compose.yml
web:
container_name: django-docker
platform: linux/x86_64
build: .

元記事を表示

AWS SAM の使いかた

参考ページ
[チュートリアル: Hello World アプリケーションのデプロイ](https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-getting-started-hello-world.html)

次の環境で確認しました。

“`text
$ python –version
Python 3.9.7
$ sam –version
SAM CLI, version 1.31.0
“`

プログラムの作成

“`bash
sam init –name sample-sam-app –runtime python3.9 –dependency-manager pip –
-app-template hello-world
“`

ビルド

“`bash
cd sample-sam-app
sam build
“`

デプロイ

“`bash
sam deploy –stack-name sample-sam-app \

元記事を表示

OTHERカテゴリの最新記事