Python関連のことを調べてみた2023年07月21日

Python関連のことを調べてみた2023年07月21日

VSCodeでPythonを実行していたら、venvのせいでPathがめちゃくちゃになってしまったら

# 概要
Pathが読み込まれない事件が発生
原因を調べたが.bashrc .bash_profileの記載は残っている。
さらにホームディレクトリが分けの分からない場所になっている。
原因はVSCodeのインタープリターのせいだった

## 事件は起こった
サーバーにSSHしてPythonを実行していたところ
Pythonの拡張機能をインストールしませんか?と出てきたので何も考えずにインストール
その後venvで仮想環境を構築したら事件は起こった。

## 事件の内容
lsコマンド等が使えなくなった
エラー内容(例):
“`
Command ‘lesspipe’ is available in the following places
* /bin/lesspipe
* /usr/bin/lesspipe
The command could not be located because ‘/bin:/usr/bin’ is not included in the PATH environment variable.
lesspipe: command not found
“`

元記事を表示

TkinterのTextが「最初は隠れている」問題はバージョンの問題か

# 本稿で扱う情報
Python
Tkinter(デスクトップアプリ制作用ライブラリ)

# 発生している問題
Tkinterで制作したアプリについて、textウィジェット(ほか)が、実行時は見えない状態になっているが、「あるはずの位置」にカーソルを合わせてクリックすると表示され、それ以降は問題なく表示され続ける

参考:Tkinter: テキストボックスが表示されない。
https://teratail.com/questions/b9jyl2uahruike

# 原因(暫定)
バージョン

# 確認できたバージョン
### 発生しない
+ 3.8.5
+ 3.11.4

### 発生する
+ 3.9
+ 3.10(確かそうだったはず)
+ ほかにも発生するバージョン多数、のはず

# 結論
Macのダークモードにも対応してるっぽいし3.11.4を使おう

# 弱腰
3.11.4で開発しますが、固有の問題があったら追記します

元記事を表示

週一でPython勉強会やってみる⑬

前回の続き

https://qiita.com/Waddy675/items/0cc2eb693797f8d50e77

教科書通りでもつまらないのでここから一気に路線変更しました!

## ColaboratoryにSelenium導入
下記を参考に設定。

https://dev.classmethod.jp/articles/google-colaboratory-use-selenium/

やったことはひたすら記事通り・・・
先駆者の方ありがとうございます!!

## ログイン処理してログイン後の情報を取得する
無事にSeleniumを導入できたので、実際に動かしてみる。。
お題は弊社のワーカーサイトにIDとパスワードを入力し、ログインボタンを押す。遷移後のおすすすめの店舗に出てくる4店舗を出力するというもの。

### 手順
1. Chromeなどで対象URLを開発者モードで開く
1. 入力フォームにあるidを取得する
1. ID、パスワード、ログインボタン分確認しておく
1. Pythonにドライバーの設定をしておき、対象URLを開く
1. ID、パスワードに入力をする

元記事を表示

最近流行りのエンジニアから特殊メソッドについて教わった話 〜サンドイッチ〜

# 特殊メソッドってなにそれ美味しいの?
pythonでダブルアンダースコアを見るとソワソワする方いらっしゃいませんか。
初学者の私はこれまで逃げてきました。
直感的にわかってないから使う発想すら出てこないんですよね。
そこで最近懇意にしているエンジニアG…4さんに教えてもらおうと思い立ちました。

#### ■*特殊メソッドを可能な限り多く含んだクラスを作ってほしい。サンドイッチの値段計算・具の追加などなどを盛り込んでみて。*

G: 特殊メソッド(マジックメソッド)を多く含んだ、サンドイッチの具材と値段を管理するためのクラスを作ります。__str__、__len__、__getitem__、__setitem__、__delitem__、__iter__、__contains__、__iadd__、__add__ などの特殊メソッドを使います。

“`python:python
class Sandwich:
def __init__(self, base_price=300):
self.ingredients = {}
s

元記事を表示

Stable Diffusion Web UIの実行で発生したエラーとその解決方法

皆さんこんにちは。今回は、私が[Stable Diffusion Web UI](https://github.com/AUTOMATIC1111/stable-diffusion-webui)を初めて実行しようとした際に発生したエラーと、その解決方法についてお話ししたいと思います。

※エラー解決が主な目的なのでインストール方法を詳しくみたい方は参考サイトを読んでください。

参考にしたサイト
[Stable Diffusion Web UIのインストール(動画)](https://www.youtube.com/watch?v=cxbpDClKjtU)
[Stable Diffusion Web UIのインストール(メモ)](https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa0FfbkVib0x4ZmdhVmlZV09qajVfZjhvSTBuUXxBQ3Jtc0tucHlKWk1XTjdjWHIzaVlxNzFRQkZ1MElfb1VlZ1FHNjcwY2lJS2FvaklX

元記事を表示

ChatGPTでお手軽ゲーム作成ハンズオン(python)

# はじめに
こんにちは!ゲーム大好きエンジニアです!

ゲームをやるのが好きで、いつか簡単なものでも作れないかな〜と思いつつなかなか足が踏み出せなかったのですが、ChatGPTの力を借りたらできるのでは!?と思いつき試しに挑戦してみました。
とても簡単にお手軽ゲームを作成することができたので、ハンズオン形式で残そうと思います!ハンズオンに興味がない方は**ゲームのルールを伝えてコードを考えてもらう**の章からご覧ください。

# 開発環境準備

## ゲーム作りに最適な開発言語を聞いてみる

まず、ゲームに最適な開発言語をChatGPTに聞いてみましょう。

https://chat.openai.com/auth/login

ログインしたのち、以下プロンプトを入力します。

“`
簡単なゲームを作るおすすめの言語を教えてください
“`

結果
“`
ゲームを作成するためのおすすめのプログラミング言語は、いくつかあります。以下は特に初心者にとって扱いやすく、豊富なリソースがある人気のある言語です:

1. Python(パイソン): Pythonはシンプルで読みやすい構文を持

元記事を表示

祇園祭を最速で巡ろう

# はじめに

日本三大祭りの一つである「祇園祭」の季節が今年もやってきました。祇園祭は京都の八坂神社の例祭で、死者の霊魂が厄災をもたらさないように都の外へ送るための祭りです。その歴史は長く平安時代に創始された祭りです。

祇園祭の目玉の一つに、山や鉾と言われる大きな山車が京都の中心部を巡る「山鉾巡行」があり、山鉾を見るために毎年多くの人が集まるイベントです。山鉾巡行は17日と24日の2回で行われ、それぞれ「前祭(さきまつり)」と「後祭(あとまつり)」と呼ばれています。前祭では23基、後祭では11基の山鉾が巡行します。

しかし、山鉾が見られるのは山鉾巡行の時だけでなく、その前3日間の宵山と言われる期間にも、各町内で見ることができます。この期間中は、それぞれの山鉾にゆかりのお守りや手ぬぐいを買えたり、山鉾に登ることができます。また、それぞれの山鉾で、御朱印を集めるという楽しみ方もあります。

山鉾は、下の地図のように京都の四条烏丸を中心にそれぞれの町に点在していて、前祭の宵山の夕刻には周辺が歩行者天国となり、歩いて巡ることができます。山鉾同士はそれなりに近い距離にありますが、全てを歩い

元記事を表示

Pythonのyieldについて

### Pythonのyieldとは
* `yield`は与えられた式を`generator` objectに格納して、`caller`に返します。
* Pythonでは`yield`は`return`と類似していますが、主要な違いとして`return`が呼び出された時点で関数の処理を終了するのに対し、`yield`は一時停止をし、再開時には引き続き実行されます。

* Advantages of yield:
* yieldキーワードを使うと、呼び出し元がオブジェクトを反復するときだけ実行されるので、メモリ効率が高い。
* 変数の状態が保存されるため、一時停止と再開を同じ時点から行うことができ、時間の節約になる。
* Disadvantages of yield:
* ジェネレーターから何度も値が返されるため、コードの流れを理解するのが難しくなることがあります。
* ジェネレーター関数の呼び出しは適切に処理されなければなりません。
(https://www.geeksforgeeks.o

元記事を表示

OpenCVで読み込んだ画像をFastAPIで返したいとき

# 結論: エンコードしたあとstarletteのStreamingResponseを使いましょう。
~~~python:サンプルコード
import io
import cv2
from fastapi import FastAPI
from starlette.responses import StreamingResponse

app = FastAPI()

@app.get(“/image/jpg”)
def image_jpg():
image_path = “C:\\publc\\image.jpg”
im = cv2.imread(image_path)
byte_image = cv2.imencode(“.jpg”, im)
return StreamingResponse(io.BytesIO(byte_image.tobytes()), media_type=”image/jpg”)

# jpgじゃなくてpngがいい場合は以下
@app.get(“/image/png”)
def image_png():
imag

元記事を表示

初書き

今後の自分のために、自分の行ったことの目次録作成させていただきます。

元記事を表示

Pythonのiteratorについて

### Pythonの`iterator`とは
* `iterator`とは、可算量のvalueからなるオブジェクトです。
* Pythonでは`iterator`は `iterator protcol`を実装したオブジェクトであり、 `__iter__()` と `__next__()`メソッドからなります。
* `List`, `Tuple`, `Dict`, `Set`などはいずれも`iterable`なコンテナであるため、`iter`, `next`メソッドを持ちます。(明示していないだけでメソッドを含む)

#### 例
“`python3
class Line:
__start: Point
__end: Point
__next: Point
__direction: Direction

def __iter__(self) -> Iterator[Point]:
self.__next = self.__start
return self

def __next__(sel

元記事を表示

最新の機械学習ライブラリを使うとたった30行以下のコードでPLATEAUの衛星画像から建物ポリゴンを抽出できるらしい!

こんなツイートを見て激震が走りました。

「え、めっちゃ簡単に建物ポリゴン抽出してない?」

ツイート主は界隈の有名人で、[Pythonのコードを1行書くだけで誰でも手軽にインタラクティブな地図アプリを作れるLeafmapを使ってみよう](https://qiita.com/nokonoko_1203/items/a287b1d48e91c23bb0c5)でも紹介した[leafmap](https://leafmap.org/)の作者でもあります。

恐る恐る[Notebook](https://samgeo.gishub.org/examples/satellite/)を見ると、やっぱりめっちゃ簡単にセグメンテーションされていそうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203944/0ef95176-b578-2fd7-f18d-a39e6ad78a4

元記事を表示

QGISプラグインをVS Codeの支援を受けながら開発したい!

QGISプラグインの開発を得意分野の1つとする我々が普段 Visual Studio Code (VS Code) 上で効率良くプラグインを開発するのに欠かせないテクニックとして、今回は**VS Codeのコード補完と型チェック**を機能させながらプラグインを開発する方法を紹介します。

うまく設定すると、下図のように VS Code による支援を受けながらQGISプラグインを開発できます。**控え目に言って最高です**。
![Screenshot 2023-07-20 at 16.56.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/95370/3ad43c6b-fcbe-320e-08d5-4078b69a1d3b.png)
![Screenshot 2023-07-20 at 16.58.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/95370/df63229c-faa8-8b95-0bb4-e4b66c

元記事を表示

python でエスケープ文字の入った JSON からコンテンツを復元する

MIME データを JSON に格納したら復元に戸惑った話。

# 背景

“`
import json
import base64
import os
import sys

filepath = sys.argv[1]
filename = os.path.basename(filepath)
# 拡張子を取得
type = os.path.splitext(filename)[1][1:]

data = {}
with open(filepath, mode=’rb’) as file:
img = file.read()
data[‘type’] = type
data[‘filename’] = filename
data[‘file’] = base64.encodebytes(img).decode(‘utf-8’)
“`

として、
“`
print(data[‘file’])
“`

とすると、

“`
UEsDBBQAAAgAADAl71afAy7EKwAAACsAAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bm

元記事を表示

ChromeDriverManagerの115.0.5790アップデート失敗暫定対処方法

以下のエラーの対処方法

“`
ValueError: There is no such driver by url https://chromedriver.storage.googleapis.com/LATEST_RELEASE_115.0.5790
“`

issuesで修正されるまでの暫定対処方法がありました。

https://github.com/SergeyPirogov/webdriver_manager/issues/536

例えば以下のようにして
https://googlechromelabs.github.io/chrome-for-testing/#stable
から該当のバージョンを保存すれば動きます。

“`py
options = webdriver.chrome.options.Options()
new_driver = r’C:\Users\k8uwall\PycharmProjects\sample\data\drivers\chromedriver\win32\115.0.5790.98′
service = ChromeServi

元記事を表示

OpenAI ChatGPT APIを使って安価にPDF論文を和訳・要約する

有名な国際会議の予稿集や学術雑誌が出るたびに「早く読みたいけど、多すぎ。時間無い」と思う方は、多いのではないでしょうか。

ということで、乱読用の論文要約スクリプトを作ってみました。当初は、最新バージョンのGPT-4を使用してスクリプトを作成しようと思っていました。しかし、GPT-4はAPI利用料の単価が高いことと、性能がそれほど良くないという検証結果があることから、GPT-4ではなく、GPT-3の1つである”gpt-3.5-turbo”モデルを使用してスクリプトを作成しました。

# 環境・モジュール
* macOS Ventura 13.4.1
* Python実行環境
* python = “3.11”
* pdfminer-six = “20221105” # PDFからテキストに変換するときに利用
* openai = “0.27.8” # OpenAIのAPIコールに利用
* numpy = “1.25.1”
* pyyaml = “6.0.1” # APIキーを読むために利用
* 実行日

元記事を表示

ubuntu18.04でapt-get installするとBad Requestなる場合の対処法

# 概要

遭遇したのはDocker環境なので以下Dockerの話
プロキシが必須の環境で具体的には以下のDockerfileをbuildしようとしたときに発生した

“`dockerfile: Dockerfile
FROM ubuntu:18.04

RUN apt-get update
RUN apt-get install -y \
software-properties-common
RUN apt-get install -y \
python3.8 \
python3.8-dev \
python3-pip
“`

で以下のBad Requestを確認

“`bash: error
55.06 Err:58 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libpython3-dev amd64 3.6.7-1~18.04
55.06 400 Bad Request [IP: xxx.xxx….]

78.23 Err:62 http://archive.

元記事を表示

Python初心者の備忘録 #05

# はじめに
今回私は最近はやりのchatGPTに興味を持ち、深層学習について学んでみたいと思い立ちました!
深層学習といえばPythonということなので、最終的にはPythonを使って深層学習ができるとこまでコツコツと学習していくことにしました。
ただ、勉強するだけではなく少しでもアウトプットをしようということで、備忘録として学習した内容をまとめていこうと思います。
この記事が少しでも誰かの糧になることを願っております!
**※投稿主の環境はWindowsなのでMacの方は多少違う部分が出てくると思いますが、ご了承ください。**
最初の記事:[Python初心者の備忘録 #01](https://qiita.com/Yushin-Tati/items/961dc47d6163f944f7e9)
前の記事:[Python初心者の備忘録 #04](https://qiita.com/Yushin-Tati/items/83aa101d7673e69d9279)
次の記事:まだ

今回の記事はStyle Guide、ErrorとException、ファイルの入出力、テスト、Da

元記事を表示

プログラミング半年おにいさんが贈る、プログラミング初学者さんへ

今回はたくさんの人に支えられながらプログラミングを半年やってきた僕が、当時の自分を思い出しながら初学者さんへ向けて、モチベーションなどを少しでも上げてもらえればいいなと思い記事を書かせていただくことにしました!
 

果たしてどれだけの初学者さんがQiitaを読んでいるかは分かりませんが、少しでも多くの方に役に立っていただければと思います。
 

いくつか章があるので気になったところだけ読んでください。
 

ここで言う初学者とは、生まれたてのヒヨコに加えて、生まれようとしているヒヨコも含まれています。
 

もう成熟したヒヨコには今回のお話はあまり役に立たないかもしれないです。
 

そしてまた、僕がちょっと歩けるようになったヒヨコに過ぎなくても、それでも良いと言うのならこの先も読み進めてください。
 

完成した鶏さんがいる場合は、ぜひ僕に餌を与えてください。

## ここで簡単な自己紹介

* プログラミングをやりだして半年ほど経ちました。
* HTML, CSS, Ruby, Pythonをやっています。どれも好きです。
* 開発が大好きで、自分が欲しくなった機能などを作ったり

元記事を表示

[競プロ用]遅延セグ木をいい加減理解する(実装編)

以下のイメージをコード化する。

https://qiita.com/Kept1994/items/d156a1ac1fe28553bf94

まずは区間最小を計算するセグ木を作り、あとから任意の演算に対応できるように拡張する。

# 区間更新/区間最小値取得 遅延セグ木
検証する問題

https://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=DSL_2_F&lang=ja

## 骨格を作る
まずは遅延セグ木が内部で必要とするデータ構造を用意する。

“`python
class LazySegTree:
def __init__(self, unit: int, bottomLen: int, func: “function”):
self.unit = unit # 単位元
self.func = func # 関数
self.bottomLen = bottomLen # 最下層の配列長

元記事を表示

OTHERカテゴリの最新記事