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

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

Apple Silicon に python3 用google-cloud-bigquery ライブラリをインストール

Apple Silicon python3 google-cloud-bigquery インストール作業メモ 2020/11/25

python3はmacOS Big Sur にバンドルのものを使います。
もちろんこれはarm64対応(x86にも対応のUniversal)です。
$ which python3
/usr/bin/python3
$ lipo -archs /usr/bin/python3
x86_64 arm64e

pip3は直接呼び出すとwarning出るので回避
alias pip3=’/usr/bin/python3 -m pip’

1, ターミナルアプリを Rosetta(x86互換)モードで開く
[アプリケーション]-[ユーティリティ]-[ターミナル]を右クリック
[一般情報]-[Rosettaを使用して開く]にチェック
あとは普通にターミナルを起動

2, grpcインストール
$ pip3 install grpcio

3, ターミナルアプリを標準(arm64)モードに戻す

4, google-cloud-bigqueryインストール
$ pip

元記事を表示

AtCoder Beginner Contest 茶diff埋め5問

###[C – Ubiquity](https://atcoder.jp/contests/abc178/tasks/abc178_c)

“`Python3:Python3
n = int(input())
print((10**n-9**n-9**n+8**n)%(10**9+7))
“`

“`C++:C++
#include
#include
#include
#include
#include
#include
#include

#include
#include
#include
#include
#include #include
#include

#define rep(i,n) for(int i=0; i<(n); i++) #define fixed_setprecision(n) fixed << setprecision((n)) #d

元記事を表示

【Python】ボタンをクリックしたら設定した文字列がクリップボードに保存されるソフト

はじめに

今回が初投稿の記事になります。改善点等があれば教えてもらえると幸いです。

最初は「パスワード管理ツール」という名前にしようと思いましたが、セキュリティ面や汎用性からこのようなタイトルになってしまいました…

もし、いい名前や説明方法が思いついたら教えてもらえると嬉しいです!

今回作成したもの

以下の画像になります。ボタンの色がうるさいのと見た目が…

各ボタンを押すと設定した文字列がクリップボードに保存されます。パスワードやよく使う文字列を設定しておくと便利だと思います。

百聞は一見に如かずと言うので実行してみてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669525/2ddf885d-5360-d2a5-8c64-1303ddcfbe36.png)

ソースコード

以下の画像がディレクトリ構造になります。この通りファイルを配置してもらえると実行できると思います。

ディレクトリ構造.png

元記事を表示

千葉県Go To EAT向けに店舗検索BOT(AI LINE BOT)を作った話(2)【概要】

千葉県Go To EAT向けに店舗検索BOT(AI LINE BOT)を作った話(1)の続きです。

システム構成は、以下の通りです。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/896062/2c41870f-d8f2-3078-dff8-10aff382cf13.png)

【フロー】
1.スマホでLINEのBOTを操作し、検索したいお店に関連するワードを入力します。
2.入力するとLINEのMessageing APIを経由してAI検索サーバ上のWEBサーバへhttpsリクエストが飛びます。
3.リクエストは、flaskで受け付け、検索ワードと類似度の高いお店をAIで判別します。
4.AIで判別した結果をもとに、データベースからお店に関する情報を返却します。

AI検索サーバはお金をかけないために、AWSで無料枠として提供されているt2.microを

元記事を表示

python json.dumpsでdecimalがある場合の対応

# はじめに
例えば、DynamoDBでint/float的な数値データを扱うと、データがdecimalとして取り出されます。こういったデータが含まれるようなqueryやgetしたアイテムに対してpythonの標準的なjson.dumpsを実行すると、変換できない型により例外が発生しましす。で、いつもこの対処方法を忘れるのでメモを残します。(類似でDatetime型で同様のことが起きます)
json.dumpsが型エラーで失敗したら変換関数を用意することで対処できます。

# そもそも
json.dumpsには引数としてdefaultを指定することできます。ここで変換用の関数をセットすることで対象外の型を自分でハンドルしてお好みの型に変換できます。
以下公式からの抜粋

> default を指定する場合は関数を指定して、この関数はそれ以外では直列化できないオブジェクトに対して呼び出されます。 その関数は、オブジェクトを JSON でエンコードできるバージョンにして返すか、さもなければ TypeError を送出しなければなりません。 指定しない場合は、 TypeError が送出され

元記事を表示

f文字列内部にDict形式を挿入できなかった

##f文字列内部にDict形式を挿入できなかった
“`python
in_folder=r”C:\Test”
name={
“OK”:r”OK.csv”,
“NG”:r”NG.csv”,
}
#NG
print(f”{in_folder}\{name[“NG”]}”))#シンタックスエラー
print(f”{in_folder}\{name[`NG`]}”))#シンタックスエラー

#OK
OK_file=”OK”
print(f”{in_folder}\{name[OK_file]}”))#”C:\Test\OK.csv”
print(“{}\{}”.format(in_folder,name[“OK”]))#”C:\Test\OK.csv”

“`

文字列はだめだったりするのかもしれない

元記事を表示

django でのファイルアップロード

#0.0 主な内容
django(本記事ではversino3.1)でのファイルアップロードに関してまとめます。
この記事を読むことで、
 1 テキストのアップロード
 2 画像のアップロード
 3 オーディオのアップロード
の方法について知ることができます。
主にdjangoやプログラミング初心者を対象とした記事ですが、djangoアーキテクチャの全体像について、基本的な内容は既知のものと想定しています。

また、本記事中では、
 1 post_fileディレクトリ下で下記のコマンドにてプロジェクトを開始し、

“`
$ django-admin startproject post_file .
“`
 2 その後template、static、mediaディレクトリを作成し、以下のようなディレクトリ構成になっている前提とします。

“`
$ project/(プロジェクトディレクトリ)
.
│── config/(設定ディレクトリ)
│ │── __init__.py
│ │── settings.py
│ │── urls.py

元記事を表示

Google Cloud Translation API の使い方

次のページを参考にしました。
[テキストの翻訳(Basic)](https://cloud.google.com/translate/docs/basic/quickstart?hl=ja)

“`py:ex01.py
#! /usr/bin/python
#
#
from google.cloud import translate_v2 as translate

text=”Es war einmal ein kleines Mädchen.”
target=”ja”

translate_client = translate.Client()
#
result = translate_client.translate(text, target_language=target)

print(“Text: {}”.format(result[“input”]))
print(“Translation: {}”.format(result[“translatedText”]))
print(“Detected source language: {}”.format(result[“

元記事を表示

PythonとHerokuでLINEBOTを作ってみた

Python学習の一環でオウム返しするLINEBOTを作ってみました。
#完成イメージ
![スクリーンショット 2020-11-23 210818.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/603568/99228e67-a413-d364-f741-a7c8473f9c95.png)
![Image from iOS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/603568/debd46d5-d1f5-ee9f-168a-25b60eb01761.png)
#環境構成
・Python
・Heroku
・LINE Developers
・Flask
#開発手順
1.LINE Developers 登録&設定
2.Heroku 登録&設定
3.Pythonで実装
4.再度LINE Developers 設定
5.Herokuへデプロイ
#LINE Developers 登録&設定
![スクリーンショット 2020-1

元記事を表示

Ubuntu18.04にCUDA10.1+cuDNN7.6.5+tensorflow-2.3.0をインストール

#はじめに
本投稿ではubuntu18.04環境でNVIDIAのGPUドライバ、CUDA10.1、cuDNN7.6.5、tensorflow2.3.0をインストールします。
環境は以下の通りです。
GPU : GTX1060
OS : Ubuntu18.04
Python : 3.6.9

**以下の参考手順は一例でありますの参考程度かつ自己責任でお願いいたします。**
またエンジニアではありませんので一部読みにくい表記などがございますが、ご容赦ください。

#機械学習のフレームワークについて
これまではtensorflow1.xx + kerasで学習を行っていましたが、tensorflow2についても興味があり、将来的なことも考えてtensorflow2に移行することにしました。
なお余談ですが使用中のGPUは将来的にはAmpere世代に交換予定です。Ampere世代ではCUDA11、cuDNN8が要求され、2020年11月時点ではtensorflow-nightly(2.4.0rc)で動作が確認されているとのことですが、正式版ではサポートはされていないようです。

#Tenso

元記事を表示

AWS S3に保存しているオブジェクトを1度に1000件削除する。

# やりたいこと
 削除するオブジェクトのキー名が記載されたファイルを読み込んで、ポチッと実行するだけで、削除できるようにしたい。

# 方針
・削除するオブジェクトのキーがかかれたファイルを用意する。
・S3のAPI(delete_objects)を利用して、ループしながらキーを指定削除する。

参考リンク
・[S3の削除について](https://docs.aws.amazon.com/AmazonS3/latest/dev/DeletingObjects.html)
・[pythonのdelete_objects APIについて](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.delete_objects)

# やったこと
・削除するオブジェクトのキーリストを作成する。

“`text:削除するオブジェクトのキーリスト
hoge/fuga/hoge.jpg
hoge/fuga/hoge.png
hoge/hoge/hoge.gif
ho

元記事を表示

Pythonで「SSL: CERTIFICATE_VERIFY_FAILED _ssl.c:1056」が出た時の対処法

## 自分の環境について
エラーを吐いた環境の概要を記す。
– macbookAir(とりあえず,macであるということが重要)
– Homebrewでpython3.7を入れた(ここが一番大事)

## エラーの解決方法について
自分の場合は,sklearnでデータセットをインポートするときに出て詰まってしまった。
ネットで調べたときに出てくる解決法では。

“`python:python3の実行コード

>>>import certifi
>>>certifi.where()
‘/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/certifi/cacert.pem’
“`

と,出てくる。
こいつをSSL認証のための鍵(?)にしてやればよい。

“`shell:terminalでの実行コード

$ touch /Library/Frameworks/Python.framework/Versions/3.7/etc/openssl/cert.pem #ファイルがなけれ

元記事を表示

【Selenium】WSLからホストOS上のドライバを叩いてブラウザを表示したい

# はじめに
WSLはWindowsを使っていながらにしてLinuxのコマンドを使えるという点で非常に便利なのですが、ことSeleniumに関して言えば、UbuntuのGUIを利用できないためブラウザの挙動が確認しづらいという難点があります。

仮想ディスプレイを立ち上げてスクリーンショットを取ればその時点での画面表示を確認することはできます[^1]が、やはり実際に動いている様子を見るに如くは無しといったところではないでしょうか。

色々試行錯誤した結果、Selenium Gridを使用することでWSL2からホストOS上のドライバを叩いてブラウザを表示することに成功したので共有させていただきます。

# 環境
ホストOS: Windows 10 Home 20H2
WSL: Ubuntu 18.04.5 on WSL2
Python: 3.7.5

# 先行研究
[WSL (Ubuntu16.04.4 LTS) 上の Python から、Selenium を利用して Windows側のウェブブラウザを操作する – ラボラジアン](https://laboradian.com/opera

元記事を表示

assertとEnum(or)デコレータを使うと、型アノテーション制約の遵守チェックをmypyの手を借りずに行える

##0. はじめに
Python3系の型チェックについては、typingとmypyが知られています。

___
・[@mski_iksmさんのQiita記事「typehintとmypyを使ったpythonの型チェック」](https://qiita.com/mski_iksm/items/85651837bd70427754d6)
・[@papi_tokeiさんのQiita記事「実践!!Python型入門(Type Hints)」](https://qiita.com/papi_tokei/items/2a309d313bc6fc5661c3)
・[SWEet 「Pythonで型検査しようぜ」](https://kk-river108.hatenablog.com/entry/2019/03/10/163457)
・[mizzsugar’s blog 「PythonとTypeScriptで学ぶGenerics初めの一歩」](https://mizzsugar.hatenablog.com/entry/2020/02/07/002250)
___

__この*mypy*は、Pythonの

元記事を表示

【Python】ゼロから始めるDjangoソースコードリーディング View編②

# 前回のお話

[View編① 基本](https://qiita.com/tsuperis/items/0966721d6ee700770e40) 

初投稿記事でしたが、思ったより閲覧数が伸びていました!
LGTMもいただけてとても励みになります。ありがとうございます。

前回はViewクラスがどやってHTTPリクエストメソッドとインスタンスメソッドを対応付けているか確認しました
環境や前提知識もこちらに書いてあるので、初見の方はさらっと読んでみてください

# 今回のお話

FormViewを読んでみます
SPAなWebサービスでなければ利用頻度が高いので、このあたりを理解するとカスタマイズの幅が広がるかもしれません

# 環境

前回と同じです。

Djangoのソースコードは`$ python -c “import django; print(django.__path__)”`でインストール場所を確認するか、[公式リポジトリ](https://github.com/django/django)から引っ張ってきましょう。

“`shell
$ python –versi

元記事を表示

pythonの基本的な「文字列操作」の文法で暗記したいこと

###(自分メモ)pythonの基本的な文法で暗記したいこと
##はじめに
自分がpthonの基本を忘れないように、自分向けに書く。
※このページを見て頂いた方すみません。完全な初心者向けではありません。
 また、よく知っている人向けに、特別なことは書いていません。


##コメントアウト
すべての言語で、最初に覚えなければならないのは「コメントアウト」ですね。

“`rb:python1.py
#コメントアウト
“`
他の記載方法もあるようですが、#だけ覚えれば十分


##スライス(基本)
スラスト(変数の後ろの**[]**)はpython独自(?)の使い方である。結構使える。
またpython初心者には、配列にしか見えないので解読を難解にする。
これより先に関数を覚えても、スライスでつまずく。

“`rb:python2.py
num=”0123456789″

#左から「1番目」を取得 ※左から見たとき、一番左は「0番」
a1=num[1]
# ‘1’

#「右」から「1番目」を取得 ※右から見たとき、一番右は「-1番」 <ここまでなんとかわかる
a2=num

元記事を表示

AtCoder で Python の networkx を使ってみる

# AtCoderで利用可能なnetworkx
AtCoderの言語アップデートでPythonは3.8系になりましたが、なんとnetworkxが使えるんですね。
処理時間を考えると使うケースは限られると思いますが、試してみたのでご紹介します。

AtCoderのコードテストで下記を入れると、各ライブラリのバージョンを確認できます。
networkxは2.4が入っています。

“` python
import sys
print(“python”, sys.version)
import numpy as np
print(“numpy”, np.__version__)
import scipy as sp
print(“scipy”, sp.__version__)
import networkx as nx
print(“networkx”, nx.__version__)
import sklearn
print(“sklearn”, sklearn.__version__)
“`

“`
python 3.8.2 (default, Feb 26 2020, 02:56:

元記事を表示

Python3で仮想環境の構築

## はじめに
 pythonの軽量モジュールである’venv’を使用した環境構築を説明します。
仮想環境を用いた開発をすることにより、プロジェクトで使用しているライブラリ・パッケージが明確化されます。
ローカルで開発をするとローカル環境に余計なライブラリや以前使ったライブラリが残っていたりして、他のマシンにデプロイした際にうまく動かないケースがあるので、仮想マシンなどを使用してプロジェクトを作成し、その中で開発をすると使用するライブラリやパッケージがはっきりし、他のマシン、チーム開発での際に共有もしやすくなる。

## 環境
* python3系

## 仮想環境の作成
※ python3系がインストールしていることを前提とします。

* macの場合

~~~:python
# 仮想環境作成
$ python3 -m venv name # nema: 環境名
# 仮想環境の有効化
$ source venv/bin/activate

# 仮想環境の無効化
$ deactivate
~~~

* windowsの場合

~~~:python
# 仮想環境作成
$ python –

元記事を表示

pythonでのdatetimeモジュールを使った時間の演算

Pythonでdatetimeモジュールを使った時間の計算をする時に少し時間がかかったのでそれについての備忘録です。
# 背景
10:00~19:00の差をdatetime.time型生成する必要があったので終了時間-開始時間みたいなことをしたかった。
# 結論
datetime.time型は四則演算がサポートされてないので、一度秒数に戻して計算しないといけない。
>time.resolution
等しくない time オブジェクト間の最小の差で、 timedelta(microseconds=1) ですが, time オブジェクト間の四則演算はサポートされていないので注意してください。
https://docs.python.org/ja/3/library/datetime.html#time-objects

# 解説
まず引き算したい時間を作成します。00:00:00~12:30:30で計算をしてみます。

“`
>>> import datetime
>>> start_hour = datetime.time(0,0,0)
>>> end_hour = datetime

元記事を表示

[Python] Google My Business API を使ってインサイトデータを取得する

##はじめに
Google My Business APIを使ってインサイトデータを取得するための日本語の情報があまり見つからなかったため、備忘録として残しておきます。

##参考
https://developers.google.com/my-business/content/prereqs
[Google API OAuth2.0のアクセストークン&リフレッシュトークン取得手順 2017年2月版](https://qiita.com/iwaseasahi/items/2363dc1d246bc06baeae)

##環境
Python(3.6.2)

##Google My Business とは
Google My Business とはGoogleが提供しているGoogleマップやGoogle検索上で、登録したビジネス情報を表示されるようにする無料サービスです。
このサービスに自分のビジネス(飲食店や美容室、歯医者など)を登録する事で検索時やマップ閲覧時にそのビジネスをユーザーの目に入りやすくすることができます。

##Google My Business APIとは
Goo

元記事を表示

OTHERカテゴリの最新記事