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

Python3関連のことを調べてみた2020年08月05日
目次

2020年における各Python処理系の状況

2020年1月1日をもってPython2系列のサポートが終了しました(一部の長期サポート環境を除く)。Pythonは完全にPython3時代に移行し、安定期を迎えているように思います。しかしながら、Pythonは何もCPythonだけではありません。JythonやIronPythonといった他の処理系の現状はいったいどうなっているのでしょうか。気になったので少しだけ調べてみました。

## CPython

![python-logo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235258/f987f941-25bc-0dff-f29a-60122f020d83.png)

[公式サイト](https://www.python.org/)
[リポジトリ](https://github.com/python/cpython)

言わずと知れた、オリジナルにして最も有名Python処理系です。C言語で実装されています。

2020年1月1日にPython2系列のサポート終了(EOL)を行いました。
2

元記事を表示

Qiita記事のタグからWordCloudを描画してみた

# はじめに

前回の記事([Windows10のPCに分析環境(Python3+JupyterLab)を作ってみた](https://qiita.com/Blaster36/items/3b1879a72b54619cb669))で、分析環境はとりあえず整備完了。
待ちに待った、Pythonプログラミングを開始!

最終的に、以下のようなモノを作ります。
![trends_of_qiita_wordcloud_shortver.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685193/95e5196d-847d-c7c3-9105-416b74c3c592.png)

## 本稿で紹介すること

– Qiita APIからの記事情報の取得
– WordCloudの描画

[Qiita API v2ドキュメント](https://qiita.com/api/v2/docs)
[WordCloud for Python documentation](https://amueller.github.io

元記事を表示

PyTorchの画像処理モデルの層を簡単に理解する方法

私は、TensorFlowを割とよく使っていますが、PyTorch最近やってみたいと思って勉強し始めました。新しいライブラリを身に着けようとするとまずはわかりやすい事例の解釈から始めるのが基本だと思います。深層学習の場合は、やっぱり簡単な畳み込みネットワークから始めるのがいいと思います。PyTorchのTutorialページでLeNetというモデルの実装があるのでそれを使ってみて勉強を始めました。(https://pytorch.org/tutorials/beginner/blitz/neural_networks_tutorial.html#sphx-glr-beginner-blitz-neural-networks-tutorial-py)

ただ、途中で各層はどのようにデータを処理しているや出力の形などを確認したくなるので単純にセットアップして回すだけでなんかもの足りないですね。天才開発者だったらnn.Conv2の設定をみて32×32がどのように処理されるの頭の中でイメージできるかもしれませんが、僕は天才じゃないのでどうしても中間の形を見たくなります。

他のもっと効率いい方

元記事を表示

Windows10のPCに分析環境(Python3+JupyterLab)を作ってみた

# はじめに

前回の記事([Windows10のPCに分析環境(Python3+Jupyter Notebook)を作ってみた](https://qiita.com/Blaster36/items/bcdb0323865782fdad89))では、Jupyter Notebookを使うところまでを掲載した。
が、どうやらより便利な「Jupyter Lab」なるツールが存在するらしい。
ということで、「Jupyter Lab」を使ってみようと思う。

[GitHub – jupyterlab/jupyterlab: JupyterLab computational environment.](https://github.com/jupyterlab/jupyterlab)
[Project Jupyter | Installing the Jupyter Software](https://jupyter.org/install.html)

## 本稿で紹介すること

– Jupyter Labのインストール
– Webブラウザで起動・表示するまでの環境設定

**ただし、Anac

元記事を表示

Subprocessに標準入力できない…

# 問題

pythonの標準ライブラリであるsubprocessなるものが存在する。
これは、複数の実行ファイルを同時に実行できる代物だが、今回は実行ファイルへの標準入力で詰まった。

例えば以下のようなC++のファイルを作成し、exeにしたとする。

“`c++:sample.cpp

include
using namespace std;

int main(){

while(true){
int a;
cout << "input" cin >>a;
cout << a * 2; return 0; } } ``` まぁ、数字を受け取ってそれを2倍した数を表示するだけなのだが、これを常にwhileで実行し続けいちいち起動せずにpythonから実行したい。 これをするときにどうしたらいいかわからなかった...。 # 解決策 先ほどのコードをsample.exeとして実行形式にした。 その後、以下のコードでうまくいった。 ```python imp

元記事を表示

Windows10のPCに分析環境(Python3+Jupyter Notebook)を作ってみた

# はじめに

大学時代からプログラミングには慣れ親しんでいたが、社会人になってからはさっぱり。(Python大好き)
が、世の動向もあってか、ここ最近はAIやブロックチェーンという言葉を業務でよく使うようになってきた。
そのため、自宅のデスクトップPCにAIで主流なPython言語のプログラミング環境を改めて整備することを6月下旬に決意した!

普通にプログラミング環境(IDE)を整備しても面白くないので、データ分析界隈でスタンダードになりつつある、ツール「Jupyter Notebook」を使ってみようと思う。
(職場だと、AzureやAWSのクラウドリソースでJupyter Notebookを起動して一気に処理する、といったことも可能なのだが、個人利用だと難しく。。。)

[Project Jupyter](https://jupyter.org/)

## 本稿で紹介すること

– Jupyter Notebookのインストール
– Webブラウザで起動・表示するまでの環境設定

**ただし、Anacondaは本稿では使わない。便利だけれども。**

## 本稿で紹介しないこと

元記事を表示

Python 指定フォルダをエクスプローラで開く

ファイルが存在するフォルダ名と同じフォルダを、別のサーバで探したいことがあったので作りました。

“`
import pathlib
import os
import os.path
import glob
import subprocess
import shutil

p_dir = pathlib.Path(os.getcwd())
print(p_dir.name)
# dir
area = p_dir.name
srctext = r’C:\aaa\bbb\ccc\{}’

path1 = srctext.format(area)

path = os.path.realpath(path1)
os.startfile(path)

“`

元記事を表示

Django on Dockerの環境づくりの記事を見ながら構築してたら途中でERROR: for django Cannot start service django: OCI runtime create failed: container_linux.go:349: starting container process caused “exec: \”/usr/src/app/entrypoint.sh\”: permission denied”: unknownと出たので解決した

# エラー内容

“`
ERROR: for django Cannot start service django: OCI runtime create failed: container_linux.go:349: starting container process caused “exec: \”/usr/src/app/entrypoint.sh\”: permission denied”: unknown
“`

# 環境
Mac OS Catalina 10.15.4

# 経緯

[DockerでDjangoの開発環境を再構築!!!!](https://qiita.com/nokonoko_1203/items/e345f899ac9ac700d6a8)

を参考にDjango REST Frameworkの環境を構築していた所、Djangoの環境をDocker上にcomposeしようとしたら以上のエラー内容が出てきたのでメモ用に記事を書いておきます。

状況としては、DjangoとpostgreSQL、nginxのDockerfileを書いた後に`entryp

元記事を表示

図書館資料用の背ラベルをPythonとreportlabで印刷する

# 図書館の本の背表紙に貼ってあるあのラベルを印刷する
キハラのプリンタ用図書ラベル、3段組でA4のやつ(商品番号60663-※)にデータを印刷します。それだけ。
通販の商品ページはこれ
https://store.shopping.yahoo.co.jp/bookbuddy/c40-60663a.html
## Python3とreportlabでPDFを作成する
ブツ切りで解説していきます。まずはライブラリのインポートから。

PDFを作成するライブラリ`reportlab`を使います。
標準ライブラリではないので、事前にpipでインストールする必要があります。
標準ライブラリの`tkinter`はちょっとした入力ダイアログを表示するため、
`sys`はキャンセルしたときにプログラムを終了するため、
`webbrowser`は出来上がったPDFのプレビューしてそのまま印刷するために使います。

“`Python
from reportlab.pdfgen import canvas
from reportlab.lib import colors
from reportlab.l

元記事を表示

【python】SSHトンネル経由でMySQL接続する方法

SSHトンネル経由でMySQL接続する方法を紹介したいと思います。
例えばAWSを使用していて、VPC内にあるMySQLへアクセスするには一度踏み台サーバー経由しないと行けず、ローカル環境から直接出来ないですよね。こういったネットワーク環境構成は多いのではないかと思いますが、ローカル環境から直接MySQLに接続したい場面もあります。
![名称未設定 (1).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11936/ff259ec1-2aff-bd40-c3c1-d0c65f8f7c3d.jpeg)
そんな時にsshtunnelというライブラリで実現することが出来るんですが、SSHポートフォワーディングを利用して、処理を実行しています。簡単にSSHポートフォワーディングについて説明したいと思います。
#SSHポートフォワーディングとは
クライアントのポートを、直接アクセス出来ないサーバーのポートに転送してくれる仕組みのことです。
コードを実行する前にSSHコマンドを利用して、ローカルからリモートサーバ先に

元記事を表示

[AtCoder]ABC174個人的メモ[Python]

# はじめに

この記事は以下の事についての個人的メモ

+ コンテスト中に考えてたこと
+ 公式解説PDF,放送を噛み砕いたもの
+ 提出したコード

E,F問題は手を付けてないのでメモも無い.
コードはコンテスト中に書いたのもあれば,後から書いたのもある.ACすることは確認済み.

## 環境

+ Windows10
+ VSCode : 1.47.3
+ Python3.8.3
+ online-judge-tools : 10.0.5
+ atcoder-cli : 2.1.0

## [ABC174 A – Air Conditioner](https://atcoder.jp/contests/abc174/tasks/abc174_a)

AC
問題文通りに実装

“`py:ABC174A
#!/usr/bin/env python3
def main():
import sys

input = sys.stdin.readline

X = int(input())
if X >= 30:
print(‘Yes’)

元記事を表示

pythonのsubprocess君、なぜかstdoutしてくれない。

# 問題

例えば、C++でこういう中身のexeファイルを作ったとする。

“` C++
#include

using namespace std;

int main(){
int A,B;
cout << "Aを入力してください" cin >> A;
cout << "Bを入力してください" cin >> B;

cout << A+B; } ``` 至ってシンプルな入力された二つの数字を足し合わせるプログラムである。 これをpythonのsubprocessで実行すると以下のような動きをする。 ```bash ``` ?????? 何も表示されない... なんだこれは... そこで、何も表示されていないが、10と20を入力してみる。 すると, ```bash $ 10 $ 20 $ Aを入力してくださいBを入力してください30 ``` うっわ。 なんか一番最後に表示してほしかったものが表示されてら。 # 解決策 これはC++の方で解決してあげなければならない。 **標準出力の各

元記事を表示

1を並べるだけで見える数の神秘~レピュニット数と不思議な性質~

# はじめに
$1$ をひたすら並べてみましょう.
“`1, 11, 111, 1111, 11111, 111111, 11111111, 111111111, 1111111111, …“`
このように $1$ を $n$ 個並べてできる自然数 $R_n$ は __Repunit 数 (レピュニット数)__ と呼ばれています.[^1]
[^1]: Repunitという名前の由来は「Repeated(繰り返す)」 + 「Unit(1)」からきています
つまり,
$R_1 = 1$,
$R_2 = 11$,
$R_3 = 111$,
$R_4 = 1111$,
$R_5 = 11111$,
………
といった具合です.
とてもシンプルな定義の Repunit 数ですが, 実はいくつかの不思議な性質を持っています.
本記事ではその性質達について紐解いていきましょう.

__高校数学レベルで理解できる内容ですので, 是非肩の力を抜いてお楽しみください!__

# Repunit数の一般項
数列を与えられるとその一般項を求めたくなるのが全人類の悲しき性です.
なので, まずはRepunit

元記事を表示

MacでRealsenseをPythonで動かす。

## はじめに
初投稿です。至らない部分があると思いますが、優しい目でみていただけると幸いです…
悪戦苦闘しました。ちなみにめちゃめんどい。

## 第一の罠
https://github.com/IntelRealSense/librealsense/blob/master/doc/installation_osx.md
公式にMacでのインストール方法は書いてある。しかし、どうやってプログラムをコンパイルできるのか分からなかった…

## 第二の罠
そこで、Pythonの環境を作ろうと決断。Ubuntuでの環境構築を参考にしようとして、
“`
$ pip install pyrealsense2
“`
をした。何も起きない。悲しい。
悲しいことにMacには対応していないみたいなので、自分でビルドするしかない。

## 第三の罠
ここで、Qiitaの記事を発見。
https://qiita.com/mizumasa/items/c6ca2c73fa86c9a5a39c
MacでPython環境を構築している方がいた!神!
早速、同じことをする。…結果、ダメだった?

## 第四の

元記事を表示

【Python】module ‘datetime’ has no attribute ‘date’のエラーにハマった時のこと。

Python初心者です。
初めてdatetimeモジュールを使った時に、
想定外のエラーでハマったのでそのことを書きます。

#実行したかった事
ただ、今日の日付を表示したかった。。。

“`
import datetime

today = datetime.date.today()
print(today.strftime(‘%Y%m%d’))
“`
これで表示できるはずなのに、
なぜか「module ‘datetime’ has no attribute ‘date’」とエラーになってしまう。。

文法が違うのか、スペルミスか、
いやいやコピペしているんだからそんなわけない・・・

1時間ほどの時間を費やし、やっと原因判明しました。

#原因
原因は、ファイル名を”datetime.py”としていたことでした。
Pythonではファイル名をモジュールと同じ名前にすると、
うまく実行できなくなるようです。

元記事を表示

Computing average life expectancy of a line of code

## Motivation

Some time ago when I asked one of my colleagues, what whas his main motivation for becoming a programmer. He then replied in a sense that he wants his code be part of a software which can be useful for many years.

Since my colleague worked as a Web Developer at that time, I was pretty skeptical of this answer. In my previous experience, the front-end part of an average project tends to be rewritten every three months or so, so this is not a very good place to look for “stable” a

元記事を表示

どうやらpip3でswitchbotのAPIがダウンロードできるみたいだ

なんの気なしに[pip3 install switchbotpy]を打ち込んだらswitchbotのAPIがインストールできたようだ。
片手団扇でインストールできるのは何より。

https://pypi.org/project/switchbotpy/

作者さんのgithubのアドレスをば。
https://github.com/nicolas-kuechler
https://github.com/RoButton

最新のファームで
https://github.com/RoButton/switchbotpy/issues/

switchbotを駆動させるのにハッスルしちゃった人たちにはこれは羨ましいと思う。

元記事を表示

Python(boto3)でクレデンシャルを切り替える8つの方法

#はじめに
AWSの各種リソースをPythonでコントロールする際に使うboto3ですが、クレデンシャルを切り替える方法はいくつかの種類があり、優先順序が混乱しがちな為復習を兼ねて調べてみました。これでAWS環境の切り替えも楽々です。

#boto3のクレデンシャル検索順序
boto3は以下の順序でクレデンシャルを検索し使用します。

1. boto.client()メソッドのパラメータとして渡されたクレデンシャル
2. セッションオブジェクトを作成する際のパラメータとして渡されたクレデンシャル
3. 環境変数
4. 共有クレデンシャルファイル (~/.aws/credentials)
5. AWS config ファイル(~/.aws/config)
6. Assume Role provider
7. Boto2 config ファイル (/etc/boto.cfg , ~/.boto)
8. IAMロールが設定されているAmazon EC2インスタンス上のインスタンスメタデータサービス

以下、YOUR_ACCESS_KEY、YOUR_SECRET_KEYは適宜自身の環境

元記事を表示

Pythonでリストを読み込んで複数フォルダ作成

同一フォルダにあるfol.txtを読みこんで、
そこに記載されている名前のフォルダを作成する

fol.txt(例)
AAA
BBB
CCC

だと、AAA, BBB, CCCのフォルダが作成される

短いVer

“`
import os
f = open(‘fol.txt’)
areas = f.read().split()
f.close()
for area in areas:
if os.path.exists(area):
print(‘フォルダ ‘ + area + ‘ は既に存在しています’)
else:
os.mkdir(area)

“`
短いVer2 コメントを参考に修正しました

“`
import os
with open(‘test.txt’,’r’) as f:
for row in f:
print(row.strip())
if os.path.exists(row.strip()):
print(‘フォルダ ‘ + row.strip() + ‘ は既に存在し

元記事を表示

【Python】ModuleNotFoundError: No module named ‘urlparse’

Pythonのスクレイピングで、URLを結合させたいときに出たエラー `ModuleNotFoundError: No module named ‘urlparse’`

## 原因

urlparseのモジュールが見当たらない(**import**ができていない)

“`py3:sample.ry
from urllib.parse import urlparse
from urllib.parse import urljoin

# ModuleNotFoundError: No module named ‘urlparse
“`

## 解決策

“`py3:sample.ry
try:
import urlparse
except ImportError:
import urllib.parse as urlparse

# OK
“`

参考
https://www.it-swarm.dev/ja/python/python%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%ABurlparse%E3%82%92%E3

元記事を表示

OTHERカテゴリの最新記事