Python関連のことを調べてみた2020年03月05日

Python関連のことを調べてみた2020年03月05日

Herokuを使ってMySQLへ接続する手順まとめ

# 概要
現在制作しているラインボットにデータベースを使った機能を追加しようと思い、Herokuを用いてMySQLへの接続を試みたがかなり躓いた所があったので今回まとめていこうと思います。

# 環境

– macOS
– python3.7.1
– MySQL5.6.47
– mysqlclient1.4.6

# この記事で書かないこと

– MySQLの詳細なクエリの使い方

# 手順
## 1.MySQLのインストール
MySQLそのものを`pip install mysql`でインストールします。

## 2.コネクタのインストール
コネクタのインストールを行います。
正直役割がよく理解できていませんが、名前の通りMySQLのサーバーとの接続の為に必要だと思われます。
コネクタには目的や使用言語等でいくつもの種類がありますが、自分は`mysqlclient`を使用しています。
こちらも`pip install mysqlclient`でインストールします。

## 3.Herokuでの準備
自分の場合は後述のMySQLの準備などを全て終えた後に、いざ動作確認をしようとHero

元記事を表示

イタリア新婚旅行の地図アルバムをPythonで作って共有してみた結果

しばらく前にイタリアへ新婚旅行に行きました。ミラノ・ヴェネツィア・フィレンツェ・ピサ・ローマ・ポンペイを1週間で回るツアーで、気づいたら1000枚くらい写真を撮っていました〜。
そこそこ自由時間もあって毎日1万歩くらいは散策したのでルート込みで記録に残しておきたい、ということで地図アルバムを作ってみました……!

# 可視化

全体像はこんな感じ。OpenStreetMapの地図を使ってます。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55208/d64f7203-34fa-5b34-3ef2-642dafb63fd2.png)

ここから、たとえばヴェネツィアをズームアップすると、こんな風に散策ルートが見れます。日にちによって色分けをしていて、ヴェネツィアは一泊したので二色ルートがありますね。
そしてマーカーが写真を撮ったポイントで、クリックすると写真がポップアップします。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com

元記事を表示

PythonでWeb APIを叩く

**PythonでHTTPにアクセスする方法**

* urllibライブラリを使う
* 標準で搭載
* Requestsライブラリを使う
* 要インストール。こちらの方がシンプルにコードを書ける。

今回は、Requestsライブラリを使ってREST形式のWeb APIを扱います。

## HTTPメソッド

使う前に HTTPメソッド/REST API について簡単に触れておきます。
クライアントからサーバーに対して行うリクエストの種類をメソッドと呼び、基本的には以下の8種類があります。

| メソッド | 説明 |
| ——– | ———————————— |
| GET | リソースの取得 |
| HEAD | リソースのHTTPヘッダーのみを取得 |
| POST | クライアントからサーバにデータを送る |
| PUT | リソースを保存

元記事を表示

COVID-19のデータでネットワーク図を作成した。

## はじめに

[厚生労働省のCOVID-19の感染状況](https://www.mhlw.go.jp/stf/newpage_09964.html)のデータを基に、グラフやネットワーク図、データテーブルを作成し、Webアプリケーション化しました。作成したアプリは下のリンクのものとなります。

[アプリリンク: https://chomoku.herokuapp.com/covid-19](https://chomoku.herokuapp.com/covid-19)

下はネットワーク図の画面です。

Image from Gyazo

利用しているデータは厚生労働省のサイトから取得しています。スクレイピングといっても、pandasのread_html関数を使っているだけで

元記事を表示

DockerでNGINX + NGINX Unit + MySQLの環境を構築

## Dockerの導入

以前、NGINX + NGINX Unit + Flaskの環境を構築しました。

[NGINX + NGINX Unit + Flask で PythonのWeb アプリを動かす](https://qiita.com/t_okkan/items/738832a87c3e157bddec)

前回はVagrantとVirtualBoxで構築しましたが、今回はDockerで構築していこうと思います。
前回と同様に、Webサーバーに`NGINX`を、APサーバーに`NGINX Unit`を、フレームワークに`Flask`を使用します。
更に今回はデータベースとして`MySQL`を追加し、`WEB <-> AP <-> DB`の環境を構築をしていきます。

以下の図のようなイメージです。(本来コンテナはホスト内で起動しますが、わかりやすように分けています)

![docker1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239179/c04a2090-cfac-0a79-95

元記事を表示

【Django】静的ファイル関連の設定について(css,js,img)

###Djangoにてcssファイルや画像ファイルの設定方法をまとめてみた

##静的ファイルとは
– cssファイル
– 画像ファイル
– jsファイル

などのクライアントからのリクエストによって、内容が変化しないファイルのことを静的ファイルと言います。

## Setting.pyでの設定
設定が必要なパラメータは主に3つです。
– STATIC_URL
– STATICFILES_DIRS
– STATIC_ROOT

**STATIC_URL**
静的ファイル配信用のURLを指定する。
デフォルトで’/static/’となっている。
http(s)://ホスト名/static/…
でアクセスできるようになる。

“`python:settings.py
STATIC_URL = ‘/static/’
“`

**STATICFILES_DIRS**
プロジェクト内で静的ファイルを保存する場所を指定します。
デフォルトでの保存先は
プロジェクト名/アプリ名/static/アプリ名/…
となっているが、複数のアプリケーション内でcssファイルを用いたい時などにいちい

元記事を表示

【Python】ふと、お問い合わせフォームを作りたくなったら

はじめまして、普段は**[Webサービス](https://siru-trend.com)**の開発をしてます。

# はじめに
先日、ふと、**お問合わせフォーム**を用意したくなり、
さらに、その内容を自身の**メールアドレス宛に送信**したくなったので、
**Python**で実装しました。

# 全体像
本記事では、**Django**を使用します。
Djangoとても便利です。

![本文を追加.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259302/47591d4a-cd5a-26fd-a278-8423cf5f35dd.png)

# フォーム定義
フォーム定義は`forms.py`で行います。

基本的には、**Django標準機能**をインポートして作ります。

加えて、**フォームの項目**を定義します。
「名前」、「連絡先」、「お問い合わせ内容」みたいなやつですね。
各項目の必須設定や文字制限も定義できます。

サンプルコード
元記事を表示

mysqlに接続

#mysql-connector-pythonを使う

“`py
import mysql.connector

conn = mysql.connector.connect(host=’127.0.0.1′, user=’root’, password=”)
cursor = conn.cursor()

cursor.execute(‘CREATE DATABASE test_mysql_database’)

cursor.close()
conn.close()

conn = mysql.connector.connect(host=’127.0.0.1′, database=’test_mysql_database’)
cursor = conn.cursor()
cursor.execute(‘CREATE TABLE persons(‘
‘id int NOT NULL AUTO_INCREMENT,’
‘name VARCHAR(14) NOT NULL,’
‘PRIMARY

元記事を表示

いつの間にかCatBoostが超進化、テキスト項目の前処理まで不要になってた件


言語処理100本ノック-44:係り受け木の可視化

[言語処理100本ノック 2015](http://www.cl.ecei.tohoku.ac.jp/nlp100/)[「第5章: 係り受け解析」](http://www.cl.ecei.tohoku.ac.jp/nlp100/#ch5)の[44本目「係り受け木の可視化」](http://www.cl.ecei.tohoku.ac.jp/nlp100/#sec44)記録です。
可視化をすることで文書がどう係り受けをしているかが非常にわかりやすいです。係り受けを可視化すると記事[「滝沢カレンの理解不能な文章を言語解析してみた。」](https://qiita.com/naoyu822/items/9d7a83879c161573f63c)にあるような素敵なこともできます。

# 参考リンク

|リンク|備考|
|:–|:–|
|[044.係り受け木の可視化.ipynb](https://github.com/YoheiFukuhara/nlp100/blob/master/05.%E4%BF%82%E3%82%8A%E5%8F%97%E3%81%91%E8%A7%A3%E6%9E%9

元記事を表示

Courseraの上級機械学習講座でGoogle Colabの環境を整える方法

Courseraの上級機械学習のプログラミング課題でGoogleColabを使う方法です。私的メモも兼ねて。

# 経緯
2日ほど前から上級機械学習の講座を受講し始めたのですが、 3週目のプログラミング課題にてとうとう「Courseraが提供する環境でも実行できるけど、CPUだからモデルのトレーニングに2時間かかるよ!」と言われてしまったので、早々にGPUの使えるGoogleColaboratoryに切り替えました。

# Courseraのプログラミング課題提出の仕組み
Courseraの(というかこの講座の?)プログラミング課題では、チェックポイントごとに、変数の値(モデルの予測成績やパラメータの総数など)をCoursera側に送信して、値が許容範囲かどうかを確認することで得点がもらえるような仕組みになっています。大体一つの課題で6つくらいチェックポイントがあります。この時、grading_utils という独自のモジュールを使用しています。今回の主な目的はこのモジュールをColabから呼び出せるようにすることです。

# ファイルのダウンロード
実は、Colabで環境を構築できる

元記事を表示

Let’s Modeling ~オープンデータを用いて~ part1

# はじめに

今回は金融データのkaggleにあるデータセットを用いて、機械学習のモデルをします。
コード全文を載せると長くなるかと思い、いくつかに分けて、投稿します。
最後まとまったものをKaggleのカーネルにまとめたいと思います。

# 使用するデータ
https://www.kaggle.com/uciml/default-of-credit-card-clients-dataset

# 目的
– クレジットカードの不履行を予測
– 優良顧客の選別

# 実行環境
OS:MacOS 10.15.3
言語:Python3.7.6
editer:jupyter lab

jupyter labについては(https://qiita.com/kirikei/items/a1639954ce5ccaf7ac3c)
こちらの記事を参考にさせて導入しました。

# データ分析開始

## データのimport
“`
#分析データディレクトリの設定
analyzedata_path=”□□□/△△△/×××/○○○/UCI_Credit_Card.csv”
input_dir =”.

元記事を表示

Djangoでstartprojectをした時にカレントディレクトリ下に無駄にディレクトリが作られることを防ぐ

##はじめに

Djangoでstartprojectをした時にカレントディレクトリ下に無駄にディレクトリが作られてしまう。。。ということないでしょうか。

私はよくDjangoで新しいアプリを作り始める時に、まずディレクトリを作ってそこに移動してから、startprojectします。

“`
# Desktop上にmysiteディレクトリを作成し、その中でプロジェクトを開始している
$ cd ~/Desktop
$ mkdir mysite
$ cd mysite
$ django-adimin startproject mysite
“`

しかし、こうしたやり方でプロジェクトをスタートするとこのように無駄にディレクトリが作られてしまうことになります。

“`
# mysiteディレクトリの中に無駄にまたmysiteが出来てしまっている
mysite/
└── mysite
├── mysite
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.p

元記事を表示

LightGBMTunerの処理を覗いてみる

# はじめに
昨年9月末の[PyData.Tokyo](https://pydatatokyo.connpass.com/event/141272/)での[発表](https://www.slideshare.net/pfi/pydatatokyo-meetup-21-optuna?ref=https://pydatatokyo.connpass.com/event/141272/presentation/)で紹介されていたLightGBMTunerがついに実装された。

– [Optuna の拡張機能 LightGBM Tuner によるハイパーパラメータ自動最適化 \| Preferred Networks Research & Development](https://tech.preferred.jp/ja/blog/hyperparameter-tuning-with-optuna-integration-lightgbm-tuner/)

LightGBMに限らず、モデルのパラメーターは独立ではなく相互に作用し合っている。
そのため、パラメーターチューニング時には各パラメー

元記事を表示

もうわたし苦労しない。。 Pythonの標準関数でマルチプロセス。

## 概要
マルチプロセス、簡単にやりましょう。
でも、ちょっとやり方に詰まって結局時間節約できなかった。。?? 

もぅマヂ無理。。。。。普通にfor文まわそ。。。。

そういう人に読んでもらいたい。

Pythonの標準装備であるProcessPoolExecutorとfunctools.partial をつかって、快適にマルチプロセスで並列計算しましょう。
使えるものは、使わないと損だよね??

## 状況説明

“`test.py

def my_function(arg1):
for i in range(100):
‘めっちゃヘビーな処理ですのん’
result_list.append(some_operation(i))

if __name__ == “__main__”:
my_function()
“`
こういう書き方、けっこう何も考えずに書きますよね?
こういうとき、100回の処理あるけど、マルチプロセスで簡単に並列処理したい。。。

## 簡単なやり方
1. 関数をちょろっと書き直します。
2. Pro

元記事を表示

WindowsでPyTorch 1.5をCUDA 10.2向けにビルドする手順

Windows 10でPyTorch 1.5をCUDA 10.2向けにビルドする手順をのせておきます。(2020/3/1時点)
PyTorchと併せてよく使われるtorchvisionのビルド手順も含んでいます。
ここでは細かい説明は省略しているので、もう少し細かい説明が必要な場合は[Blog – dev.infohub.cc](https://dev.infohub.cc/build-torch15-cuda102-win10/)も参考にしていただければと思います。

#ビルド環境
– ハードウェア
– CPU: AMD Threadripper 3960X
– GPU: nVIDIA TITAN RTX
– ソフトウェア
– Windows 10 Pro Version 1909 (x64)
– Microsoft Visual Studio Community 2019 – Ver 16.4.5
– Git for Windows(gitコマンドが使えれば何でもOK)
– Python 3.8.2(AnacondaではなくPytho

元記事を表示

VS Code上で自分好みにPythonのコード整形をしたい

# 動機
デフォルトのpylintだと,思うようにコード整形されなくて不便だったので,細かな設定を自分好みに変更する方法をまとめます.

# pipのインストール
もしすでに導入済みなら不要です.

“`
sudo apt install -y python-pip
“`

# フォーマッタをインストール
“`
pip install flake8 autopep8
“`

# setting.jsonの設定

VS Codeの設定から`setting.json`を開き,`{ }`内に書きを追記

“`
{
“python.linting.pylintEnabled”: false,
“python.linting.flake8Enabled”: true,
“python.formatting.autopep8Args”: [
“–max-line-length”, “500”,
“–ignore”, “E501”,
],
“python.linting.flake8Args”: [
“–igno

元記事を表示

手持ちの音楽ファイルからアニソンのプレイリストを自動的に作れるようにした話

# はじめに
 私はCDから音楽(主にアニソン)を取り込みwalkmanで聴いているのですが,いつの間にか手持ちのファイルが8000曲を超えてしまいました.いざプレイリストを作ろうと考えても,**お気に入りのアニソンをプレイリストに放り込むのは非常に手間がかかり**,アーティスト一覧からタイアップ情報を調べて曲を追加して…などとしているうちに**休日が終わってしまいます**.(SpotifyやApple Musicなどを使用している人には関係ない話だと思いますが…)
 こういった作業を楽しめれば良いのですが,プレイリストを作りかけては飽きるということを繰り返しているうちに,**私はそもそもプレイリスト作成作業に向いていない**ことが分かりました.幸い,**私はプレイリストの作成はできませんがプログラムは書ける**ということに気づき,自動的にアニソンのプレイリストを作ってくれるプログラムを作ったのですが,うまくいかない点が多かったので情報共有も兼ねて記事にしました.

# 実装したもの
 前置きが長くなりましたが,今回作成したプログラムは**手持ちの音楽ファイル(m4a, mp3,

元記事を表示

【Python】mapの正しい使い方

## はじめに

初めてmapに触れたとき、「定義はこんな感じかな?」と思うでしょう。

“`py
map(function, list)
“`

しかし正しくはこうです。

“`py
map(callable, *iterable)
“`
この真意を`map(function, list)`を整形していきながらわかりやすく解説します。

整形途中の定義には?マークを付けます

“`
? map(function, list)
“`

## 学びたての認識

リストの各要素に対して処理を行ったモノを使いたい場合はmap関数を使います。返る値はリストではなくmapオブジェクトというイテレータです。
イテレータなのでfor文で回すことができます。

“`py
>>> iterable = map(int, [“1”, “2”, “3”, “4”, “5”])
>>> for i in iterable:
… print(i)

1
2
3
4
5
“`

定義はこんな感じでしょうか?

“`
? map(function, list)
“`

いいえ、

元記事を表示

疑似的にNATゲートウェイを停止・起動する

# VS 使ってないNATゲートウェイの課金
NATゲートウェイは思いのほか使用料金が高く、夜間の開発環境など使用していない時は止めたい。
ただ現在において停止機能は存在しておらず、停止イコール削除となる。
停止という点ではNATインスタンスを立てて停止すれば良い話だが、それでは単純に面倒。せっかくのマネージドサービスは使いたい。
ならば、使用していないときにNATゲートウェイを削除し、使いたいときに必要な情報をもって再作成するスクリプトを作成すればいい。

# やりたいことを図にしてみる
![gomi.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558188/0b0f391e-afea-597b-dd03-da856764aea1.png)
UMLの書き方は正式に勉強していないので許してほしい。

# 停止(削除)スクリプト
“`Python
import boto3

client = boto3.client(‘ec2’)

natGateWayList = []
routeTableL

元記事を表示

OTHERカテゴリの最新記事