Python3関連のことを調べてみた2022年01月19日

Python3関連のことを調べてみた2022年01月19日

MacでTkinterを使ったGUI作成時の注意事項

#環境

– MacOS 12.1
– Python 3.10.0

#TkinterでGUI作るぞ!!!

エラーは出ないのにGUIの画面真っ黒やん。
ボタンも文字も何も出てこない。。。

あかん。 何やっても解決しないぞ、これ
と思って、別のライブラリを使って動かしたところ

>You are running a VERY old version of tkinter 8.5.9.
>You cannot use PNG formatted images for example. Please upgrade to 8.6.x

え?  バージョン古いの??

#実は気づくタイミングがありました。

直そうとしていた時に
Pythonの対話モードでバージョン確認したんですよ。

~~~
>>> tkinter.Tcl().eval(‘info patchlevel’)
‘8.5.9’
~~~
完全に見落としました。 Tcl/tkが入ってて満足してました。 
MacOSでTkinter8.5系は表示バグの致命的欠陥があります。

#よし!! アップデートするか!!

ターミナルに

元記事を表示

Pythonで日本の新型コロナ患者情報取得

#環境
`Win10`
`Python 3.8.10`
・`requests==2.25.1`
・`pandas==1.3.1`

#実装
“`py
import requests as rq
import pandas as pd

url = ‘https://covid19-japan-web-api.vercel.app/api/v1/positives?prefecture={0}’

prefectures = [‘北海道’,’青森県’,’岩手県’,’宮城県’,’秋田県’,’山形県’,’福島県’,’茨城県’,’栃木県’,’群馬県’,’埼玉県’,’千葉県’,’東京都’,’神奈川県’,’新潟県’,’富山県’,’石川県’,’福井県’,’山梨県’,’長野県’,’岐阜県’,’静岡県’,’愛知県’,’三重県’,’滋賀県’,’京都府’,’大阪府’,’兵庫県’,’奈良県’,’和歌山県’,’鳥取県’,’島根県’,’岡山県’,’広島県’,’山口県’,’徳島県’,’香川県’,’愛媛県’,’高知県’,’福岡県’,’佐賀県’,’長崎県’,’熊本県’,’大分県’,’宮崎県’,’鹿児島県’,’沖縄県’

元記事を表示

asyncio アプリ内から Slack にメッセージを投稿しよう

「[Python で Slack API や Webhook を扱うなら公式 SDK(slack-sdk/slack-bolt)を使おう](https://qiita.com/seratch/items/8f93fd0bf815b0b1d557)」シリーズの記事です。公式 SDK についての概要、他にも記事がリンクされていますので、[こちらのエントリーページ](https://qiita.com/seratch/items/8f93fd0bf815b0b1d557)にもアクセスしてみてください。

## Slack 公式 SDK の asyncio サポート

このページに辿り着いたということは [asyncio](https://docs.python.org/3/library/asyncio.html) を活用してアプリケーション開発をされていますか?

Slack 公式 SDK である [slack-sdk](https://pypi.org/project/slack-sdk/) は [AIOHTTP](https://docs.aiohttp.org/en/stable/c

元記事を表示

【Python、Ruby】約数と総和

#はじめに
元々Rubyを中心に、学んでいましたが、Rubyで書く内容を他の言語であればどのように書くのか?とふと思い、Pythonに興味があったため、勉強をしてみようと思いました。
そんな中で、
##### AIZU ONLINE JUDGE
というサイトを知り、ちょうど良いトレーニングになりそうだと思ったので、少しずつ挑戦してみることにしました。
本当は、アプリ等をどんどん作成したほうがトレーニングになるのかなと思いつつ、基礎の部分として損はないだろうと思い、やり始めています。

##3-D 約数の数

######3つの整数 a、b、cを読み込み、aからbまでの整数の中に、 cの約数がいくつあるかを求めるプログラムを作成してください。

######Input
a、b、cが1つの空白区切りで1行に与えられます。

######Output
約数の数を1行に出力してください。

######例
a=1 , b=10 ,c=30のとき、
約数の数は6つ

####解答
“`ruby:3-D.rb
# 回数を調べる
a,b,c = gets.split(” “).map(&:to_

元記事を表示

フォームを作ったつもりなのにUnknown field(s) (yyy) specified for XXXが出てしまった時の対処法

## 概説

Modelをうまく使えるよう、特定のフィールドをFormコントロールにしようとして`django.core.exceptions.FieldError: Unknown field(s) (yyy) specified for XXX`が出てしまった時は、XXXのフィールドに対して、Formコントロールで扱っているfield名yyyが存在しているか確認し、どちらか一方に合わせると良いです。

## 環境

環境は以下の通りです。

| 名称 | バージョン |
|:-:|:-:|
| macOS | Monterey(12.1) |
|django|4.0.1|
| Python | 3.8.9 |
| brew | 3.3.10 |
| pip | 21.3.1 |
| psycopg2-binary | 2.9.3 |
|PostgreSQL|14.1|

## 対処法

`models.py`で定義したフィールド名と、`forms.py`で使っているフィールド名が一致(または存在)しているか確認し、一致(または存在)していない場合は書き換えてFormとM

元記事を表示

pkを設定しているはずなのに何故かAttributeError at /XXX/<値>/が出てしまう時の対処法

## 概説

pk(id)は渡っているはずなのになぜか`AttributeError at /XXX/<値>/`が出てしまう時は
views.pyの`pk_url_kwarg`とurls.pyのパス間で整合性が取れていないことが原因です。

## 環境

環境は以下の通りです。

| 名称 | バージョン |
|:-:|:-:|
| macOS | Monterey(12.1) |
|django|4.0.1|
| Python | 3.8.9 |
| brew | 3.3.10 |
| pip | 21.3.1 |
| psycopg2-binary | 2.9.3 |
|PostgreSQL|14.1|

## 起きている問題

idはきちんと受け渡して、URLは通っているはずなのに開けずエラーとなってしまいます。
`AttributeError at /XXX/<値>/`
例外を確認すると`Generic detail view XXXView must be called with either an object pk or a slug in the URLco

元記事を表示

AtCoder Beginners Selection 11問をpythonで解いてみた

AtCoderの初心者向け問題集である [AtCoder Beginners Selection](https://atcoder.jp/contests/abs/tasks) の11問をPythonで解説します。

# [Welcome to AtCoder](https://atcoder.jp/contests/abs/tasks/practice_1)
“`python:PracticeA
a = int(input())
b, c = map(int, input().split())
s = input()
print(a+b+c, s)
“`
【解説】簡単な入力の問題です。入力はinput関数を用いて行いますが、aは後に計算するためint関数で囲み、整数値として入力を受け取ります。b,cは空白区切りで入力されるため、map関数を使用します。第二引数に設定されたinput().split()で空白区切りの文字列を受け取り、第一引数に設定されたint関数で整数値に変換、b,cに設定します。sは文字列として受け取るので、input関数のみで十分です。表示にはprint関数を

元記事を表示

代理店長私のPythonでRPA作ってみた。

今アルバイトをやっている飲食店で、店長が社員からアルバイトになって、私がお昼を中心に店長の代理的なポジションをやることになった。それに伴い、シフト作成と給料計算の一部を担当することになった。
なんだけど、給料計算の一部というのが、手動でやっていて意外と手間なことに気づいたのである。
というのも、お店でのシフトや打刻の管理は、2つのサイトで行っていて、連携もされていない。。。
手間がかかるなぁと困った代理店長私は、あることを思いついた。ちょうどPythonの勉強をし始めたところだったから、RPAを作って自動化しようじゃないか!と

## やりたいこと
はい、ということで実現したいことを説明するとこんな感じだ。

#### 実際の打刻が記録されている、データを引っ張りたいページ(以降、甲と呼びます)
![スクリーンショット 2022-01-17 19.55.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2292175/85f8127b-2c6e-ac0f-bc9a-9240036054b1.png)

元記事を表示

ファイルツリーを走査する際に特定のディレクトリの配下は無視したい

python3でファイルツリーをトラバースしたい場合、標準ライブラリとしては`os.walk`が用意されているのですが、このAPIは指定したディレクトリの配下すべてを探索してしまうため、「特定の名称のディレクトリの配下は走査しない」というような場合には、`os.walk`を利用せず、自前で実装することになります。

以下は「カレントディレクトリからファイルツリーをトラバースしていって、ファイルが見つかったら何かする、ただし`.git`ディレクトリと`.svn`ディレクトリの配下は走査しない」ということを実装したものになります。

“`py
import pathlib

stack = [pathlib.Path(‘./’)]
skips = {‘.git’, ‘.svn’}
while stack:
entry = stack.pop()
if entry.name in skips:
continue
if entry.is_dir():
stack.extend(entry.iterdir())
if entry.

元記事を表示

【Plotly】PythonのPlotlyで時系列データを可視化する

##1.初めに
Pythonでデータを可視化する際、matplotlibとseabornが定番だが、表示範囲やスケールを変える際の手間がかかる。
インタラクティブに表示範囲・スケールを変更できる可視化ツールとして、今回Plotlyの使い方を簡単にまとめた。

##2.プログラム

“`python:visualize.py
import pandas as pd
import numpy as np

df_passanger = pd.read_csv(“AirportPassengers.csv”, sep=”;”, index_col=0)
print(df_passanger.head())

# Using plotly.express
import plotly.express as px

#fig = px.line(df_passanger, x=”Month”, y=”Passengers”, title=’Life expectancy in Canada’)
fig = px.line(df_passanger, y=”Passengers”, title=

元記事を表示

kivyMD開発其の壱 初期公開説明弐篇

ハロー、Qiita!いかがお過ごしでしょうか。

はい、というわけで今週もKivyMDのお時間となりました。お正月気分は残って
いないでしょうか。投稿者はまんまと残っている限りであります。いやー、もう
1正月を迎えたい(切実)。

さて、新年早々のニュースとしては、とある企業が週休3日を考えているという
なんとも羨ましいニュースがありましたが、なんと言ってもこのニュースが話題を
呼んでいるのではないでしょうか。

https://www.itmedia.co.jp/news/articles/2201/11/news160.html

多くの方が恩恵を受けている中、ハッと目が覚めるようなニュースでしたね。当然
私も受けていますので、改めて寄付をしようかなとも思った次第ではあります。
だって、KivyMDがなければこの投稿もなかったもの。

まぁ、一旦個人の信条などは置いておいて、投稿することによって貢献をしていき
たいと思います(解決には至ってない)。今週はというと、先週に引き続き初期公開
したアプリについて解説をしていきたいと思っております。それではレッツラゴ。

## 動き(繰り返

元記事を表示

discord.pyで元の型のままコマンド引数を受け取る方法

#環境
“`
discord.py
discord==1.0.1
discord.py==1.7.3
python 3.9
“`
#問題点
discord.pyでは書き込みの引数は基本的に文字列にて受け取ります。
メンションやチャンネルの指定が含まれていたとしても、文字列です。

例:

“`python:test.py
# 色々と省略していますが核心部分だけ載せます
from discord.ext import commands
import discord

bot = commands.Bot(command_prefix=commands.when_mentioned_or(“-“))

class TestCommand(commands.Cog):
def __init__(self, bot):
super().__init__()
self.bot = bot

@commands.command()
async def test(self,ctx,*args):
if args:

元記事を表示

Jinjaのコードをがっつり読み始めてみた①

ひらう子です。

昨年2021年に開発エンジニアとして就職しまして、それまで個人開発ばかりやっていた頃に比べると、自分以外の人の書いたコードを読む機会がかなり増えました。また、個人で使っていてもいまいちピンとこなかったGitの扱いにも少し慣れてきました。
業務でコードを読むこと自体は良いのですが、就職して初めて触れるシステムのコードを読んでいても「納得できた」という達成感が中々得られません。どうもこのままでは自信もつきづらい感じがしますし、精神的な疲労感が強いです。
そこで、半ば趣味的な目的で、業務上の必要事項として読むことになるコードとは別に、自分の慣れ親しんだシステムのコードを読んで理解を深めていくことにしました。

# Jinjaを選んだ理由

コードリーディングの題材としてJinjaを選んだ要因としては、Pythonであること、自分が使ったことがあるシステムであること、ある程度の人数の人が携わっているプロジェクトであることが挙げられます。

私は個人開発ではPythonを使ってきていますので、Pythonのプロジェクトであれば文法的に未知の領域が少なく、コードリーディングの過

元記事を表示

sam local start-api に authorizer を設定(ごり押し

cf. https://github.com/aws/aws-sam-cli/issues/137

要望はめっちゃあるのに対応する気なさそうなので、

## ごり押し

`template.yaml` は `sam init` したサンプルそのままです。

“`yaml:template.yaml
AWSTemplateFormatVersion: ‘2010-09-09’
Transform: AWS::Serverless-2016-10-31
Description: >
python3.8

Sample SAM Template for sam-app

Globals:
Function:
Timeout: 3

Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function
Properties:
PackageType: Image
Architectures:
– x86_64
Events:
H

元記事を表示

駒の顔画像を自動収集する【スクレイピング – Scrapy編】

# はじめに
こんにちは。逆転オセロニアのYouTubeチャンネル「まこちゃんねる」の中の人です。
本稿では、**[公式wiki](https://xn--cckp5c6czi2302avwxa.gamematome.jp/game/964/wiki/%E3%83%88%E3%83%83%E3%83%97%E3%83%9A%E3%83%BC%E3%82%B8)から駒の顔画像を自動収集すること**を目標にします。
今回はPythonの**スクレイピング**フレームワーク、**Scrapy**を利用してみます。

# モチベーション
– オセロニアを題材にしていく上で、画像収集する場面が多いため
– Pythonでスクレイピングを実装したことが無かったので、その練習のため

# スクレイピング(Scraping)とは?
> ウェブサイトから情報を抽出するコンピュータソフトウェア技術のこと。
> [ウェブスクレイピング – Wikipedia ](https://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A7%E3%83%96%E3%82%B9%E3%82%

元記事を表示

DataFrameのリスト要素をNaNが含まれていても結合する方法

DataFrameのリスト要素を結合するとき、要素の値として`NaN`が含まれていると、結果は`NaN`になります。

“`python:期待通りに動かないコード
import pandas as pd
import numpy as np

df_test = pd.DataFrame({
“data1” :[[“1″,”2″,”3”],[“1″,”2″,”3”]],
“data2” :[[“4″,”5″,”6”],[“4″,”5″,”6”]],
“data3” :[[“7″,”8″,”9”],np.nan]
})
result = df_test[“data1”]+ df_test[“data2”]+ df_test[“data3”]
print(result)

# 結果
# 0 [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 1 NaN ← [1, 2, 3, 4, 5, 6] としたい
“`

単純に`fillna()`を使って`NaN`を空リストに変換しようとすると

元記事を表示

Windows10で埋め込みPythonパッケージ(Python Enbedded distribution)の作成

# はじめに
Pythonプログラムを配布する際、顧客にPythonランタイムをインストールしなくてもいいように組み込みパッケージを作成します。
ただし以下のランタイムのインストールは必要です。

“`
注釈 埋め込み用配布には Microsoft C Runtime は含まれません。これを提供するのはアプリケーションのインストーラの責務です。そのランタイムは既に以前にユーザのシステムにインストール済みかもしれませんし、Windows Update により自動で更新されているかもしれません。このことはシステムディレクトリに ucrtbase.dll があるか探せばわかります。
“`
# 環境
– windows10
– python-3.10.1-embed-amd64

# 手順

## Pythonのダウンロード

公式からダウンロードします。

https://www.python.org/downloads/windows/

(今回はpython-3.10.1-embed-amd64をダウンロードしました。)

以降、PowerShellで操作します。

“`cmd
P

元記事を表示

Python: VSCodeからDocker内で動いているFastAPIにステップ実行デバッグを仕掛ける

# 試した環境

## 開発環境(端末)

* Macbook Air (M1)
* VSCode November 2021 (version 1.63)
* Python 3.9.9 (homebrewでインストールした)

## FastAPIサーバ(Docker)

* Docker Desktop for Mac 4.2.0
* Docker version 20.10.12
* docker-compose version 1.29.2

### コンテナ

* python:3.11-rc linux/x86-64

### pipでインストールしたライブラリ

|Package |Version|
|—————– |——-|
|anyio |3.5.0|
|asgiref |3.4.1|
|click |8.0.3|
|fastapi |0.71.0|
|h11 |0.12.0|
|idna

元記事を表示

Astropyでカラーバーがおかしい問題を解決した

##元々は…
`APLpy`というモジュールの`FITSFigure`という関数(?)を使用していたが,どうやら最近の`Python`のアップデートに追いついていないらしく,`3.6`か`3.7`ぐらいでアップデートが終了し,それ以降のバージョンに対応していないようだった.
`Pyenv`でバージョン管理をしているので使えるといえば使えるがなんだか気持ち悪い.

ということで最新の`Python 3.10.1`でも`pip`経由できちんとインストールできた`astropy`だけでFITS画像の出力ができないか模索していた.

##そんなこんなで…

いろいろ参考にしてastropyとmatplotlibでFITS画像をプロットすることができたのだが...

“`python
import matplotlib.pyplot as plt
import matplotlib.cm as cm
from astropy.io import fits
import pyregion
from mpl_toolkits.axes_grid1 import make_axes_loca

元記事を表示

条件に一致するDatabricks Job一覧取得方法

# 対象読者
– チームで[Databricks](https://databricks.com/jp/)を利用している方
– 既存のJobで細かい条件に一致するものの洗い出しを行いたい方

# 目的
Jobがたくさんあるが、その中でも現在定期実行されているものを確認する。
(応用すれば他の情報でも抽出可能とおもわれます。)

# 流れ
– [Databricks CLI](https://docs.databricks.com/dev-tools/cli/jobs-cli.html)を用いてJob一覧とそれらに紐づく情報をjsonで出力し、
– jupyter notebookで読み込み、
– 確認したい情報を抽出しcsvで出力します。

# 環境
– Mac
– Databricks on AWS
– python
– jupyter notebook

### 事前準備
– [Databricks CLI](https://docs.databricks.com/dev-tools/cli/jobs-cli.html)が利用可能なように準備をしてくださ

元記事を表示

OTHERカテゴリの最新記事