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

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

【実践編/解説動画?あり】集計からダッシュボードの作成まで一本化!PythonとDashによるデータ可視化アプリ開発

本記事は、2020年10月23日に作成されました。

#はじめに
マーケティングリサーチプラットフォームを提供している株式会社マーケティングアプリケーションズの今井です。

弊社では、Dashに関した内容を、基礎編、Tips編、実践編の3つに分けてQiitaで投稿していきます。

**実践編(本記事)**
本麒麟のヒット分析を行うにあたり、Dashを用いてどのようにダッシュボードを作成したか、Tips編の内容を組み合わせた実践的な手法を紹介します。
サンプルを動かしている動画はこちらです。
![dash_practice_python_movie.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790578/9d4173b5-2be5-cc2f-bef6-6b96db9bea53.gif)

読んで良かった、参考になったという方は、ぜひLGTMボタンを押してください。???
TkinterをMacbookに入れて動作確認

#1. インストール

“`bash:Terminal
% brew install tcl-tk

% echo ‘export PATH=”/usr/local/opt/tcl-tk/bin:$PATH”‘ >> ~/.bash_profile
% export LDFLAGS=”-L/usr/local/opt/tcl-tk/lib”
% export CPPFLAGS=”-I/usr/local/opt/tcl-tk/include”
% export PKG_CONFIG_PATH=”/usr/local/opt/tcl-tk/lib/pkgconfig”
% source ~/.bash_profile
“`

#2. 動作確認

・[@chibi929さんのQiita記事「tkinter で作った GUI の実行可能ファイルを作る」](https://qiita.com/chibi929/items/32dce1204c8c0dccccac)

“`bash:Terminal
% python -m tkinter
“`

##成功!
![スクリーンショット 20

元記事を表示

pyenvが有効にならない場合の対処法(zsh)

## 前提
– macOS 10.15.7(Catalina)
– zsh
– pyenvはインストール済み
– [ここ](https://qiita.com/muran001/items/7b104d33f5ea3f75353f)を参考に`.zshenv`に環境変数を記述

## pyenvが使用されていないことの発見

pyenvで3.8.6に指定されていることを確認。

“`zsh
% pyenv versions
system
* 3.8.6 (set by /Users/user/.pyenv/version)
“`

ところが実際pythonのバージョンを確認したところ、3.8.6になってない!!

“`zsh
% python3 -V
Python 3.9.0
% python -V
Python 2.7.16
“`

そもそもPATHを確認すると

“`zsh
% echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/user/.pyenv/bin
“`

最初に `/user/lo

元記事を表示

Djangoで動的にLINE Flex Messageを扱う際のベストプラクティス

どうもこんにちは!
初めてQiitaに投稿するので、軽く自己紹介を。
某情報連携学部に通う学生です。(某と言っても…)
好きなブラウザはFirefoxとEdge(Chromium)です。

さて、弊学部では一年生の後半に、全員が授業でDjangoを用いたチーム開発を行います。
私は昨年LINE botを作成したのですが、その際、DjangoでLINE Messaging APIのFlex Messageを動的に扱う上手いやり方が調べても出てこなかったので、個人的に考えたベストプラクティスを備忘録も兼ねてここに記します。
Flex Messageについては[こちら](https://developers.line.biz/ja/docs/messaging-api/using-flex-messages/#page-title)を参照。

# アプローチ
DjangoにはDjango Template Languageというテンプレート言語が用意されています。また、LINE Messaging APIのFlex MessageはJSON形式で記述します。
それらを用いて、Djangoサー

元記事を表示

言語を自作してみた(2)

# 自作言語のお時間です
最近寒すぎて凍死しそうです、、、、
## また作りました
はい、アップデートしました。主な変更点としては、

– エラー機能/エラーも自作しました。自作しないとあんま愛着がわかないんですよね。
– class/なんちゃってですけど遂にクラスを実装しました。オブジェクト思考、万歳!
– printしたときになぜか空白が出るのを何とかして無くしました。
– ファイル数が格段に少なくなりました。
– そのおかげで実行が軽くなりました!

そんなOmega-version0.1.0はこちらから(Github)
->https://github.com/pythonmaster1027/Omega-version0.1.0

# とりまコード

ファイル階層

“`
(任意のディレクトリ)
├ main.py
└ Omega.bat
“`

コードがめっちゃ少なくなりました。

“`python:main.py
import os
import sys

class Start:#startして欲しいので

def __init__(self):#初期

元記事を表示

Django template formで渡されるパラメータを項目ごとに手動で装飾したいメモ

Python 3.8.5
Django version 3.1.2

備忘録

“`
/formtest/formman$ tree
.
├── admin.py
├── apps.py
├── forms.py ★つくりました。
├── __init__.py
├── migrations
│   ├── 0001_initial.py
│   ├── 0002_auto_20201119_1155.py
│   └── __init__.py
├── models.py ★書きました
├── templates ★作りました
│   ├── base.html
│   └── formman
│   └── form.html
├── tests.py
└── views.py ★書きました

3 directories, 12 files
“`

Djangoのチュートリアルやリファレンスを読んでると
以下の用に記載するとDjangoのViewはTemplateにformの項目を表示してくれると書いてあります。

“`
{{ form.as

元記事を表示

DockerでPythonにてGDALを利用する

# 概要

geotiffを利用する際に、少しハマったので、備忘録。

結論から言うと、Pyhonにおける「GDAL」ライブラリと「libgdal-dev」のバージョン対応が間違っていたことが原因でした。
**apt標準リポジトリにおいて管理される安定版「libgdal-dev」はv2.4.0です(2020年11月19日現在)。これにより、pipにて単純に「pip install GDAL」とするとv3.2.0がダウンロードされますが、v3.2.0に対応する「libgdal-dev」はv3.2.0以上必要です**。そのため、インストールする際は「**pip install GDAL==2.4.4**」とし、バージョン指定する必要があります。
この辺りを踏まえたdockerfileなどを以下に記載します。

# 前提条件

ここでは、以下のことを考えています。

– dockerを利用し、環境を使いまわせるようにする。
– あまりanacondaは好きじゃない
– Pythonを利用するのは、学習コストが低いため
– docker-composeはあくまで動作テスト用に記載
– コード

元記事を表示

2次元配列の動きを眺める関数を作った(Python)

# はじめに

主に競プロにて、2次元配列の変化を観察したいときがあると思います。
DPとか、DPとか。

1次元配列ならまだしも、2次元配列を逐次`print`するとかなり見にくい。
ということで、2次元配列の変化をじーっと眺めるための関数を用意しました。

完成品はこちら↓

“`python
from time import sleep
def print_2d_overwrite(list2d, val_width=5, sleep_sec=1.0, header=None, highlights=[]):
res_str = f'{header}\n’ if header is not None else ”
for i, row in enumerate(list2d):
for j, v in enumerate(row):
v_str = str(v).rjust(val_width)
if (i,j) in highlights:
v_str = f

元記事を表示

urllib3.exceptions.LocationParseError: Failed to parse への対策

`pip`でインストールしたコマンドなど、Pythonで書かれたコードで起こる問題。どうやらURLをパースするのに失敗しているらしい。
どうにも局所的でかつユーザ側の環境による問題なのだが、それ故か対処法がまとまっていなかったのでメモしておく。

### 経緯
atcoder-tools(競プロ用のツール)を使っていたところ、11月のはじめあたりに突然正しく動作しなくなった。ツールにアプデがあったわけでは無い、というかそもそも自分ではupdateを挟んでいないのでupdateで動作しなくなったというわけではなさそう。本当に心当たりがないのでよくわからない。

エラーを見ると

“`python
File “/usr/lib/python3/dist-packages/requests/models.py”, line 380, in prepare_url
scheme, auth, host, port, path, query, fragment = parse_url(url)
File “/usr/lib/python3/dist-packages/urlli

元記事を表示

Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-build-q9rtk_fz/grpcio/ の対処法

# やりたいこと

CentOS7+Python3.6.8の環境にて
pip3でtensorflowを入れてから、kerasを入れたい。

# 現象

“`
pip3 install –upgrade tensorflow
“`

を実行すると、

“`
Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-build-q9rtk_fz/grpcio/
“`

が発生する。

# 対策

下記を実行する。

### pip3 install –upgrade pip

“`
pip3 install –upgrade pip

WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install –user` instead.
Collecting pip
Downloading https://files.pythonhosted.org/pack

元記事を表示

CentOS7+Python3でpip3が使える環境を構築する

# やりたいこと

CentOS7にPython3をインストールしてpip3を使いたい。

# 前提

* CentOS7がインストール済であること。
* root権限でSSH接続できること。

# インストール前

当然、pip3コマンドは使えない。

“`
bash: pip3: command not found
“`

python -V
を打つと

“`
Python 2.7.5
“`

と表示される。

python3.6 -V
を打つと

“`
bash: python3.6: command not found
“`

と表示される。

# インストール手順

rootで下記を実行するだけ。

“`
yum install python3
“`

そして、y を入力して、

“`

Installed:
python3.x86_64 0:3.6.8-17.el7

Dependency Installed:
libtirpc.x86_64 0:0.2.4-0.16.el7 python3-libs.x86_64

元記事を表示

Extendable skeletons for Vim using Python, Click and Jinja2

## Problem statement
As a member of the software team at *Datawise, Inc.*, I want my part of code to be identifiable. Not just due to vanity, but also
in order to be able to clearly identify the responsible when some part of our system fails.

For a long time, I believed that `git` is a perfect solution to this problem, as while being almost seemless, it allows one to track the authorship line-wise, which
is more than enough.

However, something happened recently, which made rethinking this beli

元記事を表示

Pythonを使ってジャンケンをするプログラム

この記事では、
Pythonを使ってジャンケンをするプログラム
を書いていきます。

##求め方
1, Botの出す手をランダムで生成する。
2, あいこだった場合、もう一度繰り返す。
3, ジャンケンの結果を表示

**1, Botの出す手をランダムで生成する。**
まずはBotの出す手をランダムで生成していきます。

色々なやり方がありますが、今回はrandom.randint(0, 2)でやります。
これは、ランデムで範囲内の整数を生成できます。

この整数をグー・チョキ・パーに当てはめていきます。

“`janken.py
import random

def janken(your_result):
n = random.randint(0, 2)
if n == 0:
bot = “グー”
elif n == 1:
bot = “チョキ”
else:
bot = “パー”
“`

**2, あいこだった場合、もう一度繰り返す。**
次に、あいこだった時に、もう一度最初からやり直すように書いて

元記事を表示

エラーと戦う

# pythonで出たエラーに苦戦した話
この記事は検索下手な私が「ん?これってなんのこっちゃ」ってなった体験談ww

## attribute error
~~~
AttributeError: module(object) ‘xxx’ has no attribute ‘yyy’
~~~
このようなエラーが出ることがある..

## 今回私が起こしてしまったエラーは関数の返り値がオブジェクトの際、返り値を入れるオブジェクトの内容が変わってしまった時起きた…

~~~python:sample.py
class Person:
def __init__(self, name:str, age:int):
self.name = name
self.age = age

def renamed(person, pserson2):
person.name = ‘Kein’
return person, ron

bob = Person(‘Bob’, 19)
ron = Person(‘Ron’, 23)
kein = ren

元記事を表示

【Tips】pyenvでPython3系の3.5.3未満をインストールしようとしたときに発生するエラーへの対処

# 問題:Pythonインストールにおけるエラー
## 入力
“`shell
pyenv install 3.4.8
“`

## 出力
“`shell
Downloading Python-3.4.8.tar.xz…
-> https://www.python.org/ftp/python/3.4.8/Python-3.4.8.tar.xz
Installing Python-3.4.8…
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

Please consult to the Wiki page to fix the problem.
https://github.com/pyenv/pyenv/wiki/Common-build-problems

BUILD FAILED (Ubuntu 18.04 using python-build 1.2.19-1-gece59ca8)

Inspect or clean up the working tree at

元記事を表示

heroku + Python で Twitterトレンド bot 作る

# 目的
 ブラウザ版、アプリ版ともに、Twitterのトレンドは__トップ30__ぐらいしか見ることができません。
 トレンドのページにずっと張り付くのも面倒ですし、__任意の地域__のトレンドを見るのも難しいです。

 そこで、Twitter APIを利用してトレンドを取得し、任意のハッシュタグがトレンドにあったときに通知をするTwitter botを作りましょう。
 Twitter APIを利用すれば、__任意の地域__のトレンドを__トップ50__取得できます。
 たぶん無料で運用できるはず。
 記事で扱っているコードの一部を書き換えるだけで動くと思います。

 ローカルで試したいだけの方は適宜読み飛ばしてください。

# 本文
## 準備

### botのtwitterアカウント作成
 つくってください。

### ディレクトリ準備
 botのファイルを保存するディレクトリを作成してください。
 以下で作成するファイルは全てここに保存すること。
 ここでは`vtuber-twitter-bot`とします。最終的にはこんな感じの構成。

“`
vtuber-twitter

元記事を表示

言語を自作してみた。(1)

# 言語を自作してみたよ。
皆さんは言語を自作したことがありますか?え?ある?、、、、、あら、そう。

待って!ブラウザバックしないで!おもしろいですから?この記事!
、、はい。ありがとうございます。改めて、今回は「自作の言語を作ってみた」回の
第一回目であります。~~まあ書き溜めてたのを記事にしただけなんですけど。~~
それじゃあ早速行ってみましょう!

# 何で作るの?
筆者は(当たり前ですが)プログラムを書きます。その時、ふと頭に浮かんだのです。
「PCに言語で命令できるのなら自作の言語でも同じようにできるのでは?」と。
今考えればすぐに忘れるようなことだったのですが、筆者は変わり者なので「ならば作ってしまおう!」
と考えてしまったわけです。

# 概要
python3.8.5使用
パーサなど:すべて自作(<-ほめて!) ##文法 - 型指定させたい - ()の代わりに{}使いたい。個人的に形が好きだから。 - とりあえず関数定義とかはあと。でも実現させたい。だってまだ1回目だもん。 # コードなど あ、書き忘れてましたがGithubに載せてます。 URL:https://g

元記事を表示

Python3エンジニア認定基礎試験~模擬試験を解いてみた〜

#この記事について

Python 3 エンジニア認定基礎試験の勉強した内容を記事にしました。

##試験概要

試験名:Python 3 エンジニア認定基礎試験
問題数:40問
出題形式:選択式
試験方式:コンピューター上で実施するCBT(Computer Based Testing)形式
試験時間:60分
合格基準: 7割正解
受験料:一般価格 11,000円(税込)
学割価格:5,500円(税込)

出題範囲
出題範囲は主教材であるオライリー・ジャパン「Pythonチュートリアル 第3版」より以下の比率で出題します。

詳細はこちら
https://cbt.odyssey-com.co.jp/pythonic-exam.html

#模擬試験の問題

問1 以下のプログラムを実行した際の出力結果を選びなさい。

“`python:terminal
import json
x = {‘name’:’yamada’,’data’:[2,3,4]}
print(json.dumps(x))
“`
JSON(JavaScript Object Notation)は、軽量のデータ

元記事を表示

pythonでのMysqlの使い方

## はじめに
この記事はYoloで受け取ったデータをもとに可視化する為の方法として,Mysqlを利用する方法を記入していくつもりです.
Mysqlの使い方は以下の記事を参考に記事にしていきたいと思います.
>Python + mysql-connector-python の使い方まとめ
>https://qiita.com/valzer0/items/2f27ba98397fa7ff0d74

##環境
>python8.x
xamppを利用(Mysql)

## 使用しているライブラリ
>mysql.connector

## データベースの構成
databasename:mask
table:mask-ok-or-ng1
カラム:3

|name |format
|:———-|—–:|
|day | day |
|time | time |
|ok-or-ng | text |

## 実装したコード
“`
def sqlng():
day = datetime.date.today()
time1 =

元記事を表示

初心者の初心者による初心者のためのオブジェクト指向プログラミング入門

#概要
この記事はオブジェクト指向にアレルギーを持っている人(私含め)に、できる限りわかりやすいように「オブジェクト指向プログラミングはこわくないよ」ということが目的の記事です。

私自身、プログラミング初心者のため、用語等の説明が違ったり、わかりにくい表現があるかもしれませんが、ご了承ください。

##この記事の対象者
1. オブジェクト指向プログラミングについて大雑把に知りたい
2. 初心者の書く記事がどのようなコンテンツか知りたい
3. 他人の書いたソースコードを読んでみたい
4. 1~3以外のその他の読者

#そもそもオブジェクト指向プログラミングって何ぞや?

##Wikipediaによると
[オブジェクト指向プログラミング – Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0

元記事を表示

OTHERカテゴリの最新記事