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

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

PythonでSeleniumを使った時の例外に対する対処

#はじめに

スクレイピングでデータを収集するということでここはPythonを使いやっていこうとなりSeleniumを使用しました。その時の様々なエラーに対する処理についてまとめました。
スクレイピングが禁止になっているサイトもあるのでそこは使用する時に調べて下さい。

#エラーに対する処理
自分が、一番多く遭遇したエラーはTimeoutExceptionです。この原因としては
####ボタンが表示される前にクリックをしてしまった
####要素を取得することができなかった
などの理由があげられます。その対策として下記の二つが挙げられます。

“`python
driver = webdriver.Chrome(PATH)
# ボタンが表示されるのを10秒待機
wait = WebDriverWait(driver, 10)
wait.until(EC.element_to_be_clickable((By.ID, ‘idを記入’))) #BYの部分はXPATHなどでもOK
# ボタンをクリック
driver.find_e

元記事を表示

pipenvのinstall時に、No module named ‘_ctypes’が発生する

## 環境

OS:
Amazon Linux 2
Python:
3.8.1

## 事象

pyenvでpython3.8.1をinstall後、`pip install pipenv`を実行すると以下のエラーが発生し、installできない。

“`
ERROR: Command errored out with exit status 1:
command: /root/.pyenv/versions/3.8.1/bin/python3.8 -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘”‘”‘/tmp/pip-install-shwfwhga/distlib/setup.py'”‘”‘; __file__='”‘”‘/tmp/pip-install-shwfwhga/distlib/setup.py'”‘”‘;f=getattr(tokenize, ‘”‘”‘open'”‘”‘, open)(__file__);code=f.read().replace(‘”‘”‘\r\n'”‘”‘, ‘

元記事を表示

Flask1.0.2を使ってRESTfulなAPIをMVCで作ってみる

※この記事は1年半前にインターンシップの課題をしながら記述し、下書き状態で保存していたものを公開しています。
情報が古い場合もあるので、適宜更新していこうと思います。

この記事は、FlaskというPythonの軽量フレームワークを利用してRESTfulなAPIを作ってみようの記事です。

# はじめに
すでにFlaskを使ったRESTfulなAPIは多くの記事が書かれているが、Flaskも最近ではかなり進化していて、2年、3年前の文献とはちょっと違う今時のモダンな記述ができるようになっている。

インターンシップの技術テストでも指定言語にPythonを採用するケースが増えてきている、スラスラPythonをかけるほどのコーディングスキルが身についていなかったので、以前から気になっていたFlaskを利用して勉強してみる事にした。

最近のFlaskの流行りはSQLAlchemyというPythonのORMをラップして作られた、Flask-SQLAlchemyというライブラリを組み合わせてActive Recordでモデル記述をするようだということもわかり実際にここを組み合わせてRESTfu

元記事を表示

【Python】初中級者が解くべき過去問精選 100 問を解いてみた【Part1/22】

**目指せ水色コーダー!!!!!!**

ということで、
[レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【中級編:目指せ水色コーダー!】](
https://qiita.com/e869120/items/eb50fdaece12be418faa#2-3-%E5%88%86%E9%87%8E%E5%88%A5%E5%88%9D%E4%B8%AD%E7%B4%9A%E8%80%85%E3%81%8C%E8%A7%A3%E3%81%8F%E3%81%B9%E3%81%8D%E9%81%8E%E5%8E%BB%E5%95%8F%E7%B2%BE%E9%81%B8-100-%E5%95%8F)(@e869120さん)
>
AtCoder で水色コーダー、つまりレーティング 1200 を少ない問題数で達成するために、茶色コーダー・緑コーダーにとって適切な教育的良問を 100 問集めました。

こちらの記事の`初中級者が解くべき過去問精選 100 問`
を**Python**で解いていきます!
@e869120さんに感謝!!!!!!

#記念すべき「Part1」〜普通の全列挙

元記事を表示

Pythonでファイルのツリー構造を出力する

# 概要

コマンドのtreeみたいな感じで、Python上でファイルやディレクトリのツリー構造をいい感じに出力する関数を作ったのでメモ。

# 結論

下記の関数にツリーで表示したいディレクトリのパスを与えれば良い。Mac用に実装しているので、パスがスラッシュで区切られないような場合は非対応。

“`python
import pathlib
import glob
import os

def tree(path, layer=0, is_last=False, indent_current=’ ’):
if not pathlib.Path(path).is_absolute():
path = str(pathlib.Path(path).resolve())

# カレントディレクトリの表示
current = path.split(‘/’)[::-1][0]
if layer == 0:
print(‘<'+current+'>‘)
else:
branch = ‘└’ if

元記事を表示

Azure App Service on Linux で Python アプリを作成する

こちらに記載されている内容とほとんど同じです。
https://docs.microsoft.com/ja-jp/azure/app-service/containers/quickstart-python?tabs=bash

# Azure CLI のインストール
“`bash
brew update && brew install azure-cli
“`
https://docs.microsoft.com/ja-jp/cli/azure/install-azure-cli?view=azure-cli-latest

# サンプルのダウンロード
“`bash
git clone https://github.com/Azure-Samples/python-docs-hello-world
“`

# サンプルを実行する
“`bash
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
export FLASK_APP=application.py
flask r

元記事を表示

【自分用メモ】pyenvメモ

## インストール可能なバージョン一覧の確認
“`
$ pyenv install –list
“`

## Pythonをインストール
“`
$ pyenv install 3.8.2
“`

## バージョンの切替え
“`
$ pyenv local 2.7.10
$ pyenv global 3.5.0
“`

## 現在のバージョンの確認
“`
$ pyenv version
“`

## インストール済みのバージョン一覧確認
“`
$ pyenv versions
“`

元記事を表示

Nginx+FlaskでServer-Sent Events(SSE)が遅延するとき

# 問題
– FlaskのアプリケーションでServer-Sent Events(SSE)による更新を行っている
– Nginxに接続しなければ正常に動作する
– Nginxに接続すると,SSEの処理だけが絶望的に遅れる

# 原因
Nginxのリバースプロキシによってバッファリングが行われるため

# 解決
FlaskからJavascriptの`EventSource`に渡すレスポンスに,ヘッダ`X-Accel-Buffering: no`[^1]を付与する.

[^1]:[X-Accel | NGINX](https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/)

“`py:hoge.py
# Returns a response for the JS EventSource
@flask_app.route( “/stream” )
def stream():
response = flask.Response( event_stream( “foo” ),

元記事を表示

[seaborn] Jリーグ2019年の順位表を色々グラフ化してみた ~その2~

# はじめに
## 記事の概要
この記事では、[前回](https://qiita.com/yokubarisanyuyu/items/4d13dbf1a8ab11bde36d)に続いて、Jリーグの2019年の順位表を使って、matplotlibに加え、seabornの使い方を学びながら、サッカーにおいて順位と強く相関するものは何なのかを考察していきます。
自分の学習メモ代わりでもあるので、読みにくいかもしれませんがご容赦ください。
## 目的
・matplotlib,seabornの使い方に慣れる。
・DataFrameを扱えるようになる。
・サッカーの順位において、大事な要素を見つける。
# コードと解説
## 前提
– 開発環境
– Anaconda
– Python3
– Juptyer-notebook

## 流れ
1. 前回の表(Jリーグのランキングと勝ち点等の表)を作成
2. とりあえず総得点と総失点の関係をグラフに
3. 順位とシュート数、得点の関係
4. 各要素の相関をヒートマップで見やすくする

## コード
まず、前回の表を作成。

“`python

元記事を表示

備忘用 Chrome+ChromeDriver+selenium+pythonの環境構築

# 経緯
元々社内でVBAからIEのオートパイロットで特定のWebページを取り込んでDBに保存するような処理を書いてました。
数年はそれで大丈夫だったのですが、昨年末にWindows7の保守期間が切れ、Windows10にアップデートを行った後からVBAでのIEのオートパイロットの挙動がを使用とすると色々と制限が掛かってものすごくやりづらくなってしまいました。(セキュリティのダイアログとか凄く特殊)。
一番の原因は、VBAで掴んだIEのオブジェクトがすぐに行方不明になり「オブジェクトが見つかりません」とかなって、立ち往生してしまったのがきっかけです。
ほんと意味がわかりません。
なので、VBAで今更苦労してやるのであれば、全部書き直す気で別の手法でやった方が楽かもしれないと今更ながらChromeとseleniumでオートパイロットしてみようと思いました。
ちなみに私はpythonにも余りなじみがありません(爆)
でもさすがに少しくらい書けないと恥ずかしいですよね・・。

# 参考記事
以下の記事を参考に、自分用にメモってます。ほとんど同じ部分もあります。
ご了承下さいm(_ _)m
[

元記事を表示

ROS環境にOpenCVをインストールする際のPython環境問題のシンプルな解決策

# はじめに
ROS Kineticの環境はPython2系を使用しており、インストールする際に各種ライブラリがインストールされ、同時にOpenCVを使用する環境が準備されます。しかしながらPython3系でOpenCVを別途インストールして使用する際に、importが通らない、となった方は非常に多いのではないでしょうか。本件の解決策は環境変数を変更したり、pyenvを導入したり、もうウンザリだから環境を独立させるためにDockerに移行したり、と様々な方法があるかと思いますが、環境を壊すことなくシンプルな解決策をご紹介させて頂きます。

# 環境
– Ubuntu 16.04LTS
– ROS Kinetic Kame
– OpenCV 3.3.0
– Python 2.7.12
– Python 3.5.2

# 課題
課題はシンプルです。Ubuntuのデフォルトの環境にはPython2系と3系のどちらも準備されていると思いますが、ROSをインストールする際に2系にも3系にもROSのPython2系のライブラリのパスが通ってしまっていることです。

Python2系のimportの

元記事を表示

プログラミング言語の学ぶ順番について(初心者から中級者へ)後編

#追記
記事に書き忘れていましたが、複数の言語を中途半端にやるより、一つの言語を極めれる方がいいと思います。
ただその言語が自分に合わない(僕の場合はCが生理的にきつかった) 場合は他の言語へ移った方がいいとも思うのです。

#目次
大前提と学ぶ意義と大まかな学ぶ流れ
最初の一歩:Javascript
飛躍の一歩:Python
最初のコンパイル言語:C#
最後の難関、最強言語:C言語

http://www.minekawada.com/program-lang-order.html

元記事を表示

YAMAHA VPNルータのL2TPトンネル設定コマンドを生成するツール

# 対象
YAMAHA VPNルータ
(RTXシリーズ、NVR500以降)
Python3.x

# 使い方
以下のgithubリポジトリをcloneしてmain.pyを実行してください。

“`
https://github.com/MasatoHanayama/yamaha_l2tp_generator
“`

main.pyと同じ階層にconf.txtが生成されます。
それ以外はREADME.mdを参照してください。

元記事を表示

Python で Socket 通信 (TCP/UDP サーバ

現在 TCP/UDP でデバイスと接続する IoT モバイルアプリのプロジェクトをしています。

コロナ対策で在宅推奨にはなってるんですが借用している機材を持ち帰るわけにも行かないので、動作確認用のシミュレータを作りました。その覚書です。

## Environment

### Server

– OSX 10.14.5
– python 3.7

### Client

– Android 10.0
– Kotlin 1.3.50

クライアント (モバイルアプリ) が UDP ブロードキャストでサーチした後、見つかったデバイスに対して TCP 接続してデータが取得できるまでを目指します。

– ざっくり図

![mermaid.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308397/0ccafd7a-f011-cd27-576e-a1f7340bd427.png)

今回はシミュレータ(サーバ)作成のためクライアント側は割愛します。。。

## Python の Socket 通信

元記事を表示

scipy の OptimizeWarningを例外としてキャッチする

次のページを参考にしました。
[python – OptimizeWarningを例外としてキャッチする](https://ja.coder.work/so/python/1508276)

“`py:curve_fit02.py
#! /usr/bin/python
#
import sys
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit

import warnings
from scipy.optimize import OptimizeWarning

warnings.simplefilter(“error”, OptimizeWarning)
# ——————————————————————
def exp(xx, aa, bb, dd, pp):
rvalue = 0.0
try:
rvalue = dd * np.exp(aa * xx – bb)

元記事を表示

【やってみた】Nand2Tetris 第6章

[前回 (Nand2Tetris 第5章後編) ](https://qiita.com/daisuke_ishii/items/351845e52fe1818f7a1f)の続きです。

参考にしました。[ひとりNand2Tetris/Hiraku](http://blog.tojiru.net/article/426762206.html?seesaa_related=category)

以下はこの本で実際に手を動かしながら学ぶトピックです。

* ハードウェア 
* アーキテクチャ
* オペレーティングシステム
* プログラミング言語
* コンパイラ
* データ構造とアルゴリズム
* ソフトウェアエンジニアリング <- 今

フッターにも書いてるけど11時間30かかりました。
頑張りました。
#6章 アセンブラ
ここから本書の後半。
前半はハードウェアだったが、後半はソフトウェアらしいです。

コメントアウトで感想みたいなの書いてます。少しだけ。
constructorというのを`__init__

元記事を表示

curve_fit の使い方

exp 関数のカーブフィットの使い方です。
次のような結果を得ます。
![curve_fit_apr16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/5171e594-65dc-2968-647b-a48e1a3ab5f0.png)

“`py:curve_fit03.py
#! /usr/bin/python
#
# curve_fit03.py
#
# Apr/16/2020
# ——————————————————————
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit

# ——————————————————————
def exp(xx, aa, bb, d

元記事を表示

AWS EC2の初期環境構築:Emacs, zsh, Python3(Miniconda)

# TL; DR

まっさらなEC2インスタンスにログインして作業環境を構築した際のメモ

– `emacs-nox`をリポジトリから導入
– `zsh`をリポジトリから導入
– `/etc/passwd`を編集しシェルを変更
– `/etc/locale.conf`を編集し文字化けを解消
– `.zshrc`を編集し変更を適用
– `Miniconda3`をインストーラから導入
– `/path/to/conda init zsh`を実行

# はじめに

本記事ではAmazon Linux 2を使っているが,Ubuntu Serverを使う場合もあるため,以下に注意する.

– Amazon Linux 2のデフォルトユーザ名は`ec2-user`になる.Ubuntu Serverでは`ubuntu`になる.

– Amazon Linux 2はRedHat系なので,パッケージマネージャには`apt`ではなく`yum`を使う.

# リポジトリの初期化
“`
$ sudo yum update
“`

Debian系の`sudo apt updat

元記事を表示

自分のITライフを振り返りつつ、プログラミング言語の学ぶ順番について考える

http://www.minekawada.com/program-language-oder.html

目次
自分のプログラミング言語の学んできた順番

川田さとし、C言語を始める
川田さとし、Javascriptを始めるの巻
川田さとし、Pythonに目覚める
川田さとし、C#で仕事としてのプログラミングへ

後編は作成中

元記事を表示

PytorchでDataFrameのデータをNNで訓練できる形に整形する

# 概要
ニューラルネットワークでデータを訓練させたり検証したりする際に、データを(データ群,ラベル)の形に整形する必要がありますよね。
MNISTやCIFAR10だと事前にこの形になっているんですが、手持ちのデータを使うときには自分でこの形にする必要があります。が、理解するまで時間がかかったのでこちらにしたためておきます。

尚、基本的な方法については英語でどんぴしゃ回答してる方々がいたため、英語が行ける方は以下の一連のやりとりをご覧ください。
[Convert Pandas dataframe to PyTorch tensor?](https://stackoverflow.com/questions/50307707/convert-pandas-dataframe-to-pytorch-tensor)

このQiitaでは文脈を補って少し詳しく解説しているので、適宜必要なところだけサク読みして下さい。

##データとラベルに手持ちのデータを分ける

###DataFrameからラベルを引っ張って来る(ラベルのコラム名:target)

“`python
train_labe

元記事を表示

OTHERカテゴリの最新記事