- 1. Python3: AWS IOT の Device Shadow (botocore)
- 2. PySide2とPyCharmでGUIツールを作ってみる
- 3. Raspberry Pi で Grove の LCD モジュールを使う (背景色)
- 4. Raspberry Pi で Grove の LCD モジュールを使う
- 5. Jupyter Notebookで初期設定すること
- 6. 機械学習の初心者の僕が困りがちなこと解決法まとめ
- 7. Pythonのクラスメソッドで自身の型を返す方法
- 8. さっきまで動いてたのに、docker-compose up がうまく行かなくなり “Can’t connect to MySQL server on ‘db’ (115)” と言われた
- 9. Python3: AWS IOT の Device Shadow
- 10. Pythonで10進数→N進数変換とN進数→10進数変換
- 11. Tabnetはどのように使えるのか
- 12. 【pyenv-win】pyenv を使って Anaconda をインストール
- 13. Pythonのimport方法まとめ
- 14. ModuleNotFoundError: No module named ‘allauthlogin’ が出た
- 15. discordBOTを作ろう(Python)
- 16. 【pyenv-win】pyenv のインストールと実行
- 17. PyMuPDFでページの内容をJSON形式で抜き出そうとしたら”Object of type bytes is not JSON serializable”って出たので直した
- 18. pythonのパッケージ作成でのエラー対応
- 19. 【Python】苦闘、丸3日。Google Cloud Function (コード実行環境)を使って、Twitterの自動リツイートを実装した話。
- 20. 【Python】欲しいサイズの壁紙用画像をフォルダ内から取り出す
Python3: AWS IOT の Device Shadow (botocore)
こちらのプログラムを Botocore で書いてみました。
[Python3: AWS IOT の Device Shadow](https://qiita.com/ekzemplaro/items/5bf3510fb46b36007c2d)エンドポイントは次のコマンドで調べます。
“`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/python3
# coding: utf-8
#
# report_off_thing.py
#
# Sep/29/2021
# ——————————————————
PySide2とPyCharmでGUIツールを作ってみる
# ■ はじめに
Youtube で Cygames さんが期間限定で公開していた Python の動画を見てちょっとやってみたくなって触ってみました。
ひとまずは触りだけ。# ■ 開発環境
– PyCharm Professional 2021.2.2
– PySide2 5.15.2
– Python 3.7# ■ PySide2 をインストール
– 1. PyCharm 上で Python3 に対応したプロジェクトを作ります。(ここでは **PySide2Proj** で作ったものとする)
– 2. 「メニューバー」>「ファイル(F)」> 「設定(T) Ctrl+Alt+S」> 「プロジェクト: PySide2Proj」>「Python インタープリター」>「+マーク」を選択。
– 3. `PySide2` と入力しパッケージをインストール。# ■ 外部ツール設定
PySide2 を使いやすいように外部ツール設定をしておきます。
「メニューバー」>「ファイル(F)」> 「設定(T) Ctrl+Alt+S」> 「ツール」>「外部ツール」>「+マーク」を選択。
Raspberry Pi で Grove の LCD モジュールを使う (背景色)
こちらのプログラムを改造して、バックライトの色を変えるプログラムを書きました。
[Raspberry Pi で Grove の LCD モジュールを使う](https://qiita.com/ekzemplaro/items/38257ac6a55951b0d99d)“`py:backlight.py
#! /usr/bin/python3
#
# backlight.py
#
# Sep/29/2021
# ——————————————————————
import sys
import time
import backlight_lib
# ——————————————————————
sys.stderr.write(“*** start ***\n”)
while True:
backlight_lib.setRGB(0xff,0,0)
time.sleep(2)
backlight
Raspberry Pi で Grove の LCD モジュールを使う
次のページを参考にしました。
[Grove – LCD RGB Backlight](https://wiki.seeedstudio.com/Grove-LCD_RGB_Backlight/#play-with-raspberry-pi)実行時の様子
![IMG_20210929_080733.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/bf72166e-feb2-624c-a4ad-87e9e2cff37a.jpeg)プログラム
“`py:display_lcd.py
#! /usr/bin/python3
#
# display_lcd.py
#
# ——————————————————————
import sys
import time
import lcd_lib# —————————————————–
Jupyter Notebookで初期設定すること
# デフォルトのパスを設定
## Anacondaプロンプトで設定ファイルの作成
“`
jupyter notebook –generate-config
“`上記を実行すること下記にファイルが作成されます。
“`
C:\Users\{user_name}\.jupyter\jupyter_notebook_config.py
“`この`jupyter_notebook_config.py`を変更してきます。
## 設定ファイルの編集
設定ファイルから下記の箇所を探します。
“`
#c.NotebookApp.notebook_dir = ”
“`このコメントアウトを外してパスを指定してあげます。
その際にraw文字列で指定するように気を付けましょう。raw文字列は下記のように`r”`で記載することです。
“`
r’C:\Users\{user_name}\.jupyter\jupyter_notebook_config.py’
“`## Jupyter Notebookのプロパティの変更
まずJupyter Notebook
機械学習の初心者の僕が困りがちなこと解決法まとめ
最近機械学習を始めたのですが困ったことが多々あった(ある)のでその解決法などを随時書いていこうと思います。
また、こんなことに困ってこう解決した!や私の解決法よりももっと便利なイイ方法があるという方はぜひ教えていただけると幸いです。**目次**
>1.read_csvのオプション
>2.NaN以外の欠損値の置き換え法
>3.データの中の項目の型変更
>4.~~~##1.read_csvのオプション
私は今signateで勉強をし始めたのですが、そのデータの形は.tsvでした。
いつも通りの下記のような方法で読み込みをすると“`python
sample = pd.read_csv(‘train.tsv’)
“`
![スクリーンショット 2021-09-28 18.43.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/764631/aa87ef7e-c9fa-cc5b-63fd-12536bb9aa36.png)
のような形になってしまい、収まりがつきません。
データを見るとわかるの
Pythonのクラスメソッドで自身の型を返す方法
# 概要
– 自身のインスタンスを返すクラスメソッドを作成する際、下記のように返り値の型をクォーテーションで囲む必要がある“` Python
@classmethod
def create(cls,
name: str,
age: int
) -> ‘User’:
“`– これはファイルの先頭で`from __future__ import annotations`を呼ぶことで解消できる
“` Python
from __future__ import annotations
from dataclasses import dataclass@dataclass
class User:
name: str
name_in_lowercase: str
name_in_uppercase: str
age: int@classmethod
def create(cls,
name: str,
さっきまで動いてたのに、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 fitzdef format_for_json(obj):
encoded = base64.b64encode(obj)
decoded = encoded.decode(‘utf-8’)
return decodeddoc = 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.8pythonでパッケージを作り配布する際、今まで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