Python3関連のことを調べてみた2020年08月01日

Python3関連のことを調べてみた2020年08月01日

apt_pkgがないと言われてnuxtが動かない

# 環境

– WSL2
– Ubuntu(18.04.4 LTS)

# 発生した問題
nuxtの環境構築を終え、起動しようとするとpythonのエラーが発生

### 実行したコマンド
“`
$ nuxt-ts
“`
### エラーメッセージ
“`
Traceback (most recent call last):
File “/usr/lib/command-not-found”, line 28, in
from CommandNotFound import CommandNotFound
File “/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py”, line 19, in
from CommandNotFound.db.db import SqliteDatabase
File “/usr/lib/python3/dist-packages/CommandNotFound/db/db.py”, line 5, i

元記事を表示

【今日からPython】Pythonのインストール法 2020.8

#はじめに
ご覧いただきありがとうございます。先日MacBook Pro16インチを購入しPythonを再インストールしました。
今回インストールの仕方調べていたところ、zshの人向けのものが少ないように感じたのでインストール法をここに残します。

#手順
今回の手順は以下の通りです。
1. Homebrewのインストール
2. pyenvのインストール
3. Anacondaのインストール

#1. Homebrewのインストール
ターミナルに以下を打ち込んでください。

“`:terminal
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)”
“`

ターミナルの開き方からわからない方、不安な方は[こちらの記事](https://qiita.com/zaburo/items/29fe23c1ceb6056109fd)を参考にしてください。とてもわかりやすいです。
書きながら思ったのですが、Homebrewはbashに入っているんですか

元記事を表示

OpenCV、python、TensorFlowで物体検知を体験

Python3でOpenCV、TensorFlowを使った物体検知の体験した際の備忘録です。

#自分のPCの状態
私のmacにはpyenvでpythonは3.7.3が入っている状態です。virtualenvで仮想環境は作っていません。
Homebrewは入っています。
wgetが入っていない場合はターミナルから

“`
brew install wget
“`
でwgwtをインストールしておきます。

#OpenCVをインストール
OpenCVとはコンピューターで画像や動画を処理するのに必要な機能が実装されているライブラリです。(https://www.atmarkit.co.jp/ait/articles/1507/27/news154.html)

ターミナルで

“`
brew install opencv
“`

“`
pip3 install opencv-python
“`

こんな感じでカメラから映像を表示できるようです。
キーボードでqを押すと終了します。

“`py

import cv2

cap = cv2.VideoCapture(0)

wh

元記事を表示

Docker コンテナ内でmatplotlibなどを使った画像表示されない場合の対処法

Docker コンテナ内でmatplotlib等で画像表示しようと思ったらこけたので記します
Ubuntu 16.04.6 LTS環境でやってます。

[問題点]
Docker run した後にコンテナに入り、matplotlibでplot.show()すると画像が何も表示されず、コマンドが終わる。
もしくは
>docker _tkinter.TclError: couldn’t connect to display
>_tkinter.TclError: no display name and no $DISPLAY environment variable
>_tkinter.TclError: couldn’t connect to display :0.0
みたいなエラーが出てくる。

[対処法]
①まずターミナルに以下のコマンドをうつ

“`
$sudo apt-get install x11-xserver-utils
$xhost +
“`

②docker run する時には以下をオプションにつける
`-v /tmp/.X11-unix:/tmp/.X11-unix

元記事を表示

Pythonのf文字(format済み文字列)

#### f文字(format済み文字列)について
まず、これはPython3.6からなので注意してください。
***
“`Python
a = 20
s = “あなたは{}歳”.format(a)
“`

“`Python
a = 20
s = f”あなたは{s}歳”
“`
文字列の先にfをくっつける
***
もちろん

“`Python
a = 20
s = f”あなたは{s+2}歳”
“`
中括弧内で計算や、Pythonのコードも書き込める。

元記事を表示

PythonのSQLiteで外部キー(Foreign Key)[備忘録]

#### PythonのSQLiteで外部キーを使っていきます
まずPersonテーブルを作ります。

“`Python
db = “./exsample.db”
con = sqlite3.connect(db)
cur = con.cursor()
table = “Person” # テーブル名
sql = f”””create table {table}(
id integer primary key autoincrement,
name text,
age integer,
)”””
cur.execute(sql) # SQL実行
self.con.commit() # 保存
“`
`id`は`primary key`で主キーにし、`autoincrement`で自動で振り分けるようにしています。

外部テーブルを作ります。

“`Python
table = “Memo” # テーブル名
sql = f”””create table {table}(
id integer primary key autoincrement,

元記事を表示

Jupyter notebookの使い方[超基礎]

#Jupyter notebookの超基礎
Jupyter notebookの基本的な説明になっています。
非常にざっくりとした使い方になっているので、内容は初めて使う方向けです。
したがって、特に高度なことは書いていません。
ご注意ください。

#Jupyter notebook起動直後の画面

##概観
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285972/2470273b-9748-6c0b-1d56-90960a220336.png)

1. Upload : 新しいファイルをここに、アップロードできる。
2. New : ファイル(jupyter notebook形式など)やフォルダを作成する。
3. 更新 : このディレクトリ(フォルダ)中を更新する
4. ファイル名 : このファイル名をクリックするとjupyter notebook形式で開ける
5. □ : ☑︎を入れるとファイルを選択できる。削除・複製・編集などが、その後選択できる。
##ファイルの作成
Newを

元記事を表示

温度センサーDHT22をラズパイで動かす

#温度センサーDHT22をラズパイで動かす
またまたn番煎じ的な感じですが、べつにIoTをやりたいわけではなくて、
センサーデータをオブジェクトストレージにためる為の準備的な感じ。
あとエアコンの無い7月のテレワーク部屋がどのくらい暑いのかって事を知ってほしい。

使ったもの
ラズパイ:Pi3b+ (Linux raspberrypi 4.19.118-v7+ )
センサー:HDT22 
電源:5V/3.0A
プログラム:https://github.com/adafruit/Adafruit_Python_DHT

#センサー取り付け
センサーにケーブルが3本入っていたのでそれを使用

| ケーブル | DHT22 | Piのピン番号 |
|:-:|:-:|:-:|
| 青 | GND |6番 |
| 黄色 |VCC |2番 |
| 緑色 |DAT |7番(GPIO=4) |

注意点として、緑はピン番号は7番だけどGPIOのIDは**4番**です! ラズパイの仕様なのでしょうがない。
ケーブルは、どの色がどこでも問題ないですが昔の覚え方だと、五月みどり、岸

元記事を表示

Spotify APIを使ったヒット予測2.過去データのランキングをもとにざっくり予測

![spotify.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/661171/01b3237d-bf34-6f1b-646a-87fa92b409de.png)

日付ごとのランキングデータを元に、spotifyのデータだけを使ってランキング予測をしていきます。

今回はまず取り掛かりの第一回目として、
1.トラックごとのランキング推移をSpotifyの全期間取得
2.sklearnを使って簡易予測データ(学習データと検証データ)を作成
3.グラフで予測データを可視化

##1.トラックごとのランキング推移をSpotifyの全期間取得
Spotifyは2017年からのデータをcsvでダウンロードできますので、そのデータを使っていきます。
2017年1月1日からのデータを一つのcsvにまとめます。

作成したファイル一覧がこちら
![9A28D3E1-8EDA-41E6-B1BF-9BE19AA6E0B5.png](https://qiita-image-store.s3.ap-northeast-1.

元記事を表示

PythonでSQLite3を扱ってみる[備忘録]

#### 初めに
`sqlite`は`Python`に標準で入っているモジュール。インストールせずに`import`できる。
#### コネクト
“`Python
import sqlite3

db = “./exsample.db” # データベースまでのパス
con = sqlite3.connect(db) # コネクト
“`
#### テーブルを作る
“`Python
cur = con.cursor()
table = “Friend” # テーブル名
sql = f”””create table {table}(
id integer primary key autoincrement,
name text,
age integer,
)”””
cur.execute(sql) # SQL実行
self.con.commit() # 保存
“`
`id`は`primary key`で主キーにし、`autoincrement`で自動で振り分けるようにしている。
#### テーブルがなかったら作る。
“`Python
table = “Fri

元記事を表示

RaspberryPi上でFlask+uWSGI+NGINXを繋げる方法

いろんなサイトを参考にしているが、どれも自分の環境で動いているサイトがないため、試行錯誤しながら、やっと繋げることができたので、記録として残す。

やっとこと。

1. uwsgi.iniファイルの設定
1. uwsgi Unitサービスの設定(**ここで苦労**)
1. nginx confファイルの設定(**ここでも苦労**)

ノウハウとして、以下が必要と感じた。

– **socketプロキシサーバーの理解が必要**
– **仮想環境の実行パスの理解**

### 1. uwsgi.iniファイルの設定

“`
# uwsgi.ini

[uwsgi]

socket = /tmp/uwsgi.sock
chmod-socket = 666

# wsgiファイル
wsgi-file= <実行するPythonファイルのフルパス>
callable=app

# アクセス許可ホスト:ポート
socket=0.0.0.0:8080
“`

※重要なことはアクセス許可は**socket=127.0.0.1:ポート番号または0.0.0.0:ポート番号にすること**。なお、当初はh

元記事を表示

pythonで主成分分析(Scikit-learn版,pandas&numpy版)(【高等学校学習指導要領 情報Ⅱ】教員研修用教材)

# はじめに
主成分分析とは、対象の特徴を表す多変量のデータから複数の変数をまとめて主成分(特徴量)を作成する手法です。
次元削減が行える手法であり、データの構造を見やすくしたり、機械学習の計算量を削減して計算スピードを向上させたりすることができます。
簡単に言うと、相関のある多変量のデータを、ばらつきの方向と大きさに注目してより相関の少ない関数により、データを表現する手法です。
今回は、文部科学省のページで公開されている情報Ⅱの教員研修教材内の「主成分分析と次元削減」で取り上げられているものをpythonで実装しつつ、仕組みを確認していけたらと思います。

# 教材
[高等学校情報科「情報Ⅱ」教員研修用教材(本編):文部科学省](https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/mext_00742.html “高等学校情報科「情報Ⅱ」教員研修用教材(本編):文部科学省”)
[第3章 情報とデータサイエンス 前半 (PDF:8.9MB)](https://www.mext.go.jp/content/20200702-mxt_jo

元記事を表示

freeeAPIで勤怠打刻を自動化したい! その2

今回は、スクリプト作成編です(雑にまとめました。後で気が向いたら or 質問や指摘をもらったら、追記します。)

## 動機

人は、ルーチンワークを意識すると言うのが、苦手な生き物である!!(主語でかい)
みなさん、よく月末に勤怠を入力してくださいって、言われません?
言われない?自動化してる?

僕は割と言われます
毎回、「すみません(汗」と、言って勤怠を入れるのである。
もう、3回言われたら、自動化して対策するのが、エンジニアってものですよ。
(財布も月3回、家に忘れたから、忘れるものと割り切って対策組んだし)
ちょうど、人事労務freeeにはAPIが公開されているので、こいつで勤怠打刻を自動化しましょう!
ちなみに、言語は会社で使っているPythonです。
(PowerShell版もあります。)

Python版:https://github.com/EndoHizumi/timerecordeeer
PoiwerShell版:https://github.com/EndoHizumi/tr4ps1

## セットアップ

事前にPython 3.6以降をインストールしてくださ

元記事を表示

Python標準ライブラリにあるデータ構造の時間計算量

## 時間計算量比較

以下のページをもとにPythonの時間計算量を並べた。
載っていないメソッドについては、一部を自分で補足し、自分が理解していない残りはTBC。
https://wiki.python.org/moin/TimeComplexity
https://docs.python.org/ja/3/library/
https://www.ics.uci.edu/~pattis/ICS-33/lectures/complexitypython.txt

* List:配列。現在の割り当てサイズを超えて拡張したり、先頭に近い場所に挿入/削除すると遅い。
* TupleはListと同じOperationと時間計算量を持つimmutableなデータ構造。
* Deque:双方向連結リスト+双端。真ん中あたりのindexにアクセスすると遅い。
* Setはmutable、Frozensetはimmutableでハッシュ可。どちらも同じOperationと時間計算量を持つ。
* DictとDefaultdictは同じOperationと時間計算量を持つ。
* setのaddは末尾に

元記事を表示

pythonでインピーダンス解析(EIS)【impedance.py】

##概要
インピーダンス(電気化学インピーダンス)の解析をpythonで行えるライブラリ[**impedance.py**](https://impedancepy.readthedocs.io/en/latest)を紹介します。測定したNyquist plotを、構築した等価回路モデルへフィッティングしてパラメータを得るところまでやります。
有料ソフト等が不要なので気軽に使えます
基本的にimpedance.pyの[公式チュートリアル](https://impedancepy.readthedocs.io/en/latest/getting-started.html#)に沿って説明し、ところどころ補足する程度ですのでよっぽど英語を読みたくない人向けです。
説明が要らない人用に一番下にコードをまとめて掲載してます。

###課題
オープンソースのツールだけを使ってインピーダンス解析をしたい

電気化学インピーダンス解析には測定装置に付随する解析ソフトが必要ですが、測定用PCでいちいち解析するのはめんどくさいですよね。。。
しかしソフトは有料のものが多く、ライセンスの関係で自分のPCに

元記事を表示

anvil-app-serverでcertificate verify failed。

前書き

以前、[Anvil](https://anvil.works/)を触ったのですが、ドキュメントを読み進めると、ローカルに実行環境を作ることができるようで、試しました。
が、素直に動作してくれず、ようやく動作させられたのでメモ。

参考

– [Anvil をローカル実行する](https://qiita.com/satamame/items/df9f5bc6c85a0976fee4)
– [[youtube-dl] python3のSSLエラー(CERTIFICATE_VERIFY_FAILED)](https://qiita.com/tommy19970714/items/96edba36dfde468e26f3)
– [Anvil Runtime and App Server](https://github.com/anvil-works/anvil-runtime)

環境

– Ubuntu 20.04 LTS 日本語 Remix
– Hyper-V マネージャー 10.0.18362.1
– Python 3.8.5

元記事を表示

[解決済み]Python3.8.5で「ssl module in python is not available」

前書き

UbuntuでPython3を使う場合、`apt`か`apt-get`でパッケージをインストールするのがスタンダードと思います。
ただ、「最新版」を使いたい場合、tarballからインストールしなければいけません。
今回、少々トラブりましたので、そのメモです。

参考サイト

– [“ssl module in Python is not available” when installing package with pip3](https://stackoverflow.com/questions/41328451/ssl-module-in-python-is-not-available-when-installing-package-with-pip3)
– [Ubuntu環境のPython](https://www.python.jp/install/ubuntu/index.html)

環境

– [Ubuntu 20.04 LTS 日本語 Remix](https://www.ubuntulinux.jp/home

元記事を表示

pythonのlist comprehension(list生成法)について

# 最初に
ブロックチェーンの練習について初めてやってみたけど、かなり練習してきたpythonでもやはり忘れることが多く、一見してわかりそうなことが実はわからなかったりする。今回は実は、この`all(k in value for k in list1)`というコードに出会って、わけわからんと思って調べたら、得られた知識です。メモっておこうと思った。

# pythonのリスト生成法
pythonのリスト生成法は色々あるが、今回紹介するlist comprehensionはその中で最も優れている方法かもしれない。  

早速例を見よ

“` shell
>>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
“`
じゃ`[1*1, 2*2, 3*3, …, 10*10]`のリストを作りたいけど、どうする?

“` shell
>>> L = []
>>> for x in range(1, 11):
… L.append(x * x)

>>> L
[1, 4, 9, 16, 25, 36, 49, 64,

元記事を表示

【macOS】Pythonのversionを切り替える方法【pyenv】

# はじめに
※本記事はPython初心者向けに記載した記事です。
 分かりにくい箇所や誤りはご指摘いただければ幸いですm(__)m

pythonのversionを2系から3系に切り替えるために以下の記事を参考にしたのですが、
つまずいてしまったので同じような事象が発生している方向けに参考になればと思い、記載します。
#### 参考サイト
[それでもPythonのversionを切り替えたい](https://qiita.com/bootsnin/items/5735f667a83beaca078b)

# .bash_profile を編集しても python の version が2系のまま。。
上記参考サイトの通り、.bash_profile を編集し、いざターミナルで以下のコマンドを実行しても version は2系のままでした。

“`ruby:qiita.rb
python –version
“`

# python のパスを確認
そこで次のコマンドを実行すると

“`ruby:qiita.rb
which python
“`

[/usr/local/bi

元記事を表示

pythonの@propertyについて

`@property`について語るには、基礎から語らなきゃいけないんです。

学校の例を見てみましょう。学生というクラスがあるとしましょう。

通常、クラスの属性を決めるときに、属性をそのまま公開しても良いのですが、勝手に変更することが可能となり、あまりおすすめできません。というのも、点数は通常0 ~ 100の範囲内に位置するので、デタラメに9999にもできてしまいます。明らかにおかしいですね。

“` python3
s = Student() #オブジェクト作成
s.score = 9999
s.score = 1111
# 勝手に書き換えられる
“`

ということで、`set_score()`や`get_score()`で成績を取得することにしました。(普通の流れです)

“` python
class Student:
def get_score():
return self.self._score

def set_score(self, value):
if not isinstance(value, int):
raise Val

元記事を表示

OTHERカテゴリの最新記事