Python関連のことを調べてみた2019年11月28日

Python関連のことを調べてみた2019年11月28日

【Unity(C#),Python】API通信勉強メモ③簡易版ログイン機能の実装

##今回やること
Unity側から入力した情報を登録 & ログインする機能を作ります。
前回同様、Flaskでローカルにアプリケーションサーバーを立てて利用します。

【前回】:[【Unity(C#),Python】API通信勉強メモ②Flaskでローカルサーバー立ち上げ](https://qiita.com/OKsaiyowa/items/0f8c0fe030abf0b490ed)

なんもわからんなりの解釈が山盛りなのでマサカリ、オールオッケーです。
**特にセキュリティ面に関してはエンジニアと名乗るのが恥ずかしいくらい疎い**ので
超巨大マサカリで一刀両断してもらってもしっかりと受け止めます。

##実際に作成したもの
![GetHIKAKIN.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244071/08f029e7-0e6c-7af1-4ed0-59020c718cc3.gif)

ID、パスワードを入力してのアカウント登録が行えて、
ログイン画面で実際にログインっぽいことが可能です。

元記事を表示

まゆんごのPython学習記第4話:数字を文字扱いするとどうなるか見てみた

まゆんごまゆまゆです

今回は第4話ということで数字を数字とした時と文字列として見た時の違いを見ていきます。

[同じ内容を動画でも公開しているのでよろしければご覧ください。](https://youtu.be/1uHBRfcNszM)

前回と同じくfirst=114,second=514,iti=”114″,ni=”514″で変数を作りました。

“`python
first = 114
second = 514

iti = “114”
ni = “514”

card = “モンスターカード!!!”
message = “まさにDEATH☆GAME!!”
“`

まずは数値となっているfirstとsecondで計算をしてみましょう。

足し算は「+」、引き算は「−」、掛け算は「*」、割り算は「/」と「//」になります。

これについては後々詳しく触れていきます。

“`python
print(first + second)#足し算
print(first – second)#引き算
print(first * second)#掛け算
print(first / seco

元記事を表示

Pipenv使い方まとめ(自分用)

#はじめに
なんか他の方の記事を見ると詳細がわかったりしていいのですが開発する際にどうすればなにができるかっていうのが一つの記事でわかるものが少ないなって思いました.
みんながわかるようにっていうわけではなく自分がこれがあれば十分かなっていうのをまとめてみました.

#環境
– Windows 10 Home
– Windows Subsystem for Linux
– Python 3.6.4

#導入
[Pipenvを導入するまで](https://qiita.com/mashita1023/items/10239f5621ef2fc8acb9)
これ見てください

#使い方

## 初期化
Python3系なら

“`bash
$ pipenv –python 3
“`

## パッケージのインストール

“`bash
$ pipenv install django
$ pipenv install numpy==1.17.4
“`

“`:Pipfile
[packages]
django = “*”
numpy = “1.17.4”
“`

開発用パッケージの

元記事を表示

Prometheus client_python tips – 複数の対象のmetricsを作る方法

# Overview

Prometheusには様々なexporterがあるが、APIを作ったりして
独自のmetricsを生成したい場合は、client libraryを使うようになっている。

– https://prometheus.io/docs/instrumenting/clientlibs/

従ってpythonにもそれ用のlibraryがあり、それが[こちら](https://github.com/prometheus/client_python)。
基本的にはGaugeを使って作れば良いのでだいたい以下のようなコードになる。

“`python
#!/usr/bin/env python3
# import os
import sys
import re
from logging import getLogger
from prometheus_client import generate_latest
from prometheus_client import Gauge
from prometheus_client import REGISTRY
logger

元記事を表示

WSLのpython環境でGUI周りではまったこと

# はじめに
先日wslにpython環境を構築したばかりで,GUIを含んだプログラムを実行していなかったので試しに実行してみたところ,エラーで詰まったのでその対処を備忘録として残します.

# 実行したプログラムの概要
実行しようとしてはまったのはPyQt5を使用したGUIプログラムです.matplotlibによる描画も含んでいます.
Anaconda環境では何の追加設定もなしに実行可能なプログラムになっています.

# エラーの内容
`qt.qpa.plugin: Could not load the Qt platform plugin “xcb” in “” even though it was found.`
プログラムを実行したところ上記のエラーが出ました.

調べると同じような状況に遭遇した方がいました.
[\`qt\.qpa\.plugin: Could not load the Qt platform plugin “xcb” in “” even though it was found\.\` というエラーが起きたときの対処 \- Qiita](https://qi

元記事を表示

SSH先のPythonプロセスにアタッチしてデバッグ

## 概要
既に動いているPythonプロセスにアタッチして生きているオブジェクトを操作したい場面は往々にしてあります。

– 前処理に時間のかかるグラフを出してみたは良いけどデータを保存する処理を書き忘れた。
– 数日かかるモデルの学習がエラーも吐かず止まっている。どこで止まったか知りたい。
– 巨大なサービスからspawnされているPythonスクリプトのデバッグ
– ゾンビや孤児になってしまったプロセスにアタッチしたい

ローカル環境でIDEが動く場合は簡単かもしれませんが、GPUマシンなどにSSHしている場合はより問題が込み入ってきます。

今回はこうした問題を、lightweightかつportableなツールの組み合わせで解決する方法を紹介します。
![](http://www18.tok2.com/home/ryukoso/gazou/LuckyStar/KABA_2702_DVD-7141.jpg)
> 1. Small is beautiful. 小さいものは美しい ――The UNIX philosophy――

## 条件
例として1秒おきに経過秒数を表示し続

元記事を表示

SlackからPythonサーバーにメッセージを送信する

# 概要
slcakボットを作成し、slackからのメッセージをサーバーに送信する。
slackへサーバーからメッセージを送信するのは –> [「Slackにpythonからメッセージを送信する」](https://qiita.com/stu345/items/24790710abc571aae3ea)

# やること

#1 サーバーの用意
slackからアクセスするサーバを用意する。
[url_verification event](https://api.slack.com/events/url_verification)を参考に条件を満たす必要がある。
## pythonコードサンプル
“`python
import flask
from flask import request, Response
import os
import json

app = flask.Flask(__name__)

@app.route(‘/’, methods=[“POST”])
def index():
data = request.data.decode(‘utf-8’)

元記事を表示

Pythonでscikit-learnがinstallできない

# 環境
Python3.8.0

# 概要
ざっと見た感じ

“`
No module named ‘Cython’
“`

これと、あとNumpyを先に入れていたせいでバージョンの依存関係でエラーが出たっぽい。

ので

# 解決策

“`
pip3 install Cython
pip3 install -U scikit-learn
“`

-Uつけるとすでに入っているライブラリとの依存関係をいい感じにしてくれるっぽい??

# 参考文献
https://scikit-learn.org/stable/install.html

元記事を表示

fitsをアタマから作りたい

# はじめに
天文データでよく使われるfitsと仲良くなれたと思ったときに記録を残していきます。
これはfitsとはなんぞやというのを勉強するために1から作ってみました。

まず、fitsは天文データによく使われるファイル形式であり、座標、周波数といった情報を格納するヘッダー部と、観測から得られた情報を格納するデータ部の2から構成される。詳しくはwikipediaで…(逃げ)
[https://ja.wikipedia.org/wiki/FITS](https://ja.wikipedia.org/wiki/FITS)

#fitsの作成
なんだかんだで悩んだfitsの作成。本当にこの方法でいいのか。。。いいと信じたい。
とりあえず[100, 100]の配列を持つfitsを作るスクリプトを示します。

“`ruby:make_fits_1.py
import numpy as np
from astropy.io import fits

x = 100 #x_axis pixel number
y = 100 #y_axis pixel number
z =

元記事を表示

Googleカレンダーの予定からバイトの給料を計算して教えてくれるSlack botが欲しい!

#はじめに
Googleカレンダーとても便利ですよね.Gmailと連動できるし,PCから開けるし,シンプルだし.ただ,不満に思う点があります.それがバイトの給料を計算してくれないことです.シフト管理アプリと連動してくれれば良いのに...
と言うこと,気になってた各種APIとかAWSとかを初心者なりに使いつつ,作ってみました.

#使ったもの
* Slack
* AWS
* Googleカレンダー
* Python

#アーキテクチャ全体像
以下のような構成でbotを作成しました.

仕組み

#手順
1. Slack APIのサイト上でbot作成用のアプリを作成する
2. AWS上にSlackイベントを受け取るエンドポイントを作成する
3. GoogleAPIを使って,Googleカレンダーからバイトの給料を計算す

元記事を表示

pandasのMultiIndexで階層取り出しでミスった

pandasのMultiIndexは便利なのだが、単純にIndexの多次元版として扱っていたらハマったのでメモしておく。

## ハマったこと

例として次のようなテーブルが`hoge.csv`として存在することとする。

|||val|
|:–:|:–:|:–:|
|1|a|b|
|2|c|d|
|3|a|d|
|4|b|c|
|5|a|b|

`hoge.csv`のval以外の列をindexとして読みだしてみるとMultiIndexのDataFrameとして読みだされる

“`python
>>> import pandas as pd
>>> df = pd.read_csv(“hoge.csv”, index_col=[0, 1])
“`
“`
>>> df
val
1 a b
2 c d
3 a d
4 b c
5 a b
“`

この適当なDataFrameをvalでフィルタリングしてみる

“`python
>>> tmp_df = df.query(“val==’b'”)
“`
“`
>>> tmp_df.index
Mu

元記事を表示

Jupyter NotebookでのD3.jsによる木構造の描画

# やりたいこと
木構造データをJupyter Notebookとか、ウェブアプリとかで美しく描画したい!というのがモチベーションです。Pythonを使うのは元データを分析する都合からで、インタラクティブに分析と可視化を繰り返したいと考えたからです。

## Python
Pythonで木構造を描画するやり方はいろいろあるようでして、一番最初に思いつくのは、[networkx](https://networkx.github.io/documentation/stable/index.html)や[graphviz](https://graphviz.readthedocs.io/en/stable/)とかのグラフライブラリを使うことだけど、そもそもがグラフ構造の分析を行うことが目的のライブラリなので、凝った表現は難しいと考えます。

一方で、木構造の専用の分析・可視化ツールとしては、[ETE Toolkit](http://etetoolkit.org/)があります。木構造の表現としてはよく知られているらしいThe Newick formatを使ってモデルを表現します。これもなかなか

元記事を表示

docker-compose upでPythonのログが出力されない

## 結論
`-u`オプションで解決した

“`yaml:docker-compose.yml
command: python -u main.py
“`

## 経緯
以下のようなファイルをdocker-compose.ymlの`command`に指定したらログに何も出力されなかった。[^1]

[^1]: 「動作しない」ではなく「出力されない」だと気付くのにもだいぶ時間かかった

“`python
import time

print(‘hoge’)

while True:
print(‘fuga’)
time.sleep(1)
“`

原因調査のために部分的に切り分けていきます。

[^2]: `import`文を削除したら出力されることがあったが、これはエラーによってその行で動作が停止しただけだった

* `docker-compose run`だと動作する
* `docker-compose run python bash`で入ったbash内で立ち上げたpythonインタプリタ内でも動作する

最終的にpythonスクリプトを何行かづつコメントアウトしたりし

元記事を表示

機械学習で画像認識モデルを自作してAndroidアプリを実装する最短経路について

# この記事の目的
– 画像認識モデルを簡単に作って,簡単にアプリとして動かす方法を共有する

## 実行環境
– google colaboratory(ランタイム:GPU)(tensorflow 2.0)(Google Chrome)
– win 10
– Android Studio(3.5.2)
– android 9.0(Huawei mate 10 pro)

## この記事で書くこと
– [画像認識モデルのためのデータセット作成方法](#画像認識モデルのためのデータセット作成方法)
– [画像認識モデルの作成方法](#画像認識モデルの作成方法)
– [作成した画像認識モデルをAndroid Studioで読み込み動かす方法](#作成した画像認識モデルをandroid-studioで読み込み動かす方法)
– [筆者の失敗(?)談](#筆者の失敗談)

# 画像認識モデルのためのデータセット作成方法
以下のステップを踏む
1. 認識したいクラスを複数作る.(ここではクラスA,Bとする)
2. クラスA,Bの画像を集める
3. クラスA,Bの画像をトレーニング用,テスト用に分け

元記事を表示

Python 三次元の直交座標と極座標の変換

## 直交座標(x, y, z) to 極座標(r, θ, φ)

“`math
\left\{
\begin{array}{l}
r =\sqrt{x^2+y^2+z^2} \\
\theta =\arccos(z/\sqrt{x^2+y^2+z^2}) \\
\phi = \arctan (y, x) \\
\end{array}
\right.
“`

“`python
import math

radius = math.sqrt(x ** 2 + y ** 2 + z ** 2)
theta = math.acos(z / radius)
phi = math.atan2(y, x)
“`

## 極座標(r, θ, φ) to 直交座標(x, y, z)

“`math
\left\{
\begin{array}{l}
x=r\sin\theta\cos\phi \\
y=r\sin\theta\sin\phi \\
z=r\cos\theta
\end{array}
\right.
“`

“`python
import math

x = radius

元記事を表示

PoertyをWindowsで使ってみる

元記事は[こちら](https://blog.moo-channel.net/2019/11/27/poetry-on-windows/)です

Pythonのパッケージ管理とか仮想環境を管理するツールのお話です。

[Pipenv](https://pipenv.kennethreitz.org/en/latest/)は普通に使っているのですが、[poetry](https://poetry.eustace.io/)はまだまともに使ったことがないので、ちょっと試してみました。

## 環境

* OS: Windows 10 Pro
* Python: 3.7.5と2.7.17がインストール済み、Py Launcherは有効

## 今回の目標

poetryで3.7用と2.7用のプロジェクトフォルダを作り、それぞれのフォルダで`poetry run python –version`を実行して表示されるPythonのバージョンが違ったら成功、といったところです。

## poetryインストール

[poetry公式のインストール方法](https://poetry.eustace

元記事を表示

Python loggingでsyslog出力するサンプルプログラム

“`py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import logging
import logging.handlers

logging.basicConfig(filename=’/tmp/logger.log’, level=logging.DEBUG)
log = logging.getLogger(“test_logge_name”)

syslog_handler = logging.handlers.SysLogHandler(address=”/dev/log”, facility=logging.handlers.SysLogHandler.LOG_LOCAL1)
#syslog_handler.setLevel(logging.WARNING)

log.addHandler(syslog_handler)
log.debug(‘Test Debug message’)
log.info(‘Test Info message’)
log.warning(‘Test Warning message’)
log.e

元記事を表示

【Django】Modelを作成後makemigrationsを実行してもNo changes detectedになる

# 現象
新規にmodelを作成後、makemigrationsを実行しても下記のような出力となり、マイグレーションファイルが作成されない現象に遭遇したので、その対応策をメモ。

“`sh
# modelを新規作成後下記コマンドを実行
$ python manage.py makemigrations
No changes detected
“`

# フォルダの構造

※詳細は割愛

“`
app
├─migrations
├─models
│ ├─__init__.py
│ ├─accounts.py
│ └─users.py    # 今回新しく追加したmodel
└─views
├─__init__.py
└─account.py
“`

# 原因

どうやらmodelsフォルダに分割してmodelを作成している場合は\__init__.pyに新規で作成したmodelをインポートしないと認識してくれないらしい。

## もともとの\__init__.pyの中身

“`python:app/models/__init__.py
from account

元記事を表示

【Python】数字が入ったListを文字列結合して出力ファイルへ書き出す

`pickle` とかありましたが、数字が入っているとバグるようなので原始的にやります。

“`python

data = [[1,2,3,4,5,6], [1,2,3,4,5,6]]

def c(data):
outputfile = open(“./output.txt”, “w”)
for d in data:
if(len(d) == 6):
str_list = map(str, d)
write_data = “,”.join(str_list)+”\n”
outputfile.write(write_data)
outputfile.close()

c(data)
“`

結果

“`text:output.txt
1,2,3,4,5,6
1,2,3,4,5,6
“`

Point
– 一度使用したファイルのcloseを忘れずに
– mapで要素全てをStringに変換

元記事を表示

python csvデータ 要素の頻度

pythonのpandasを用いてcsvの要素の頻度について求めたいのですが、列と行を指定してその中から要素の頻度を調べることは可能なのでしょうか?

参考としてこちらを読みました。
https://note.nkmk.me/python-pandas-value-counts/

ご教授お願いいたします。

元記事を表示

OTHERカテゴリの最新記事