Python3関連のことを調べてみた

Python3関連のことを調べてみた

pyzbarライブラリの使用で発生した”ImportError: Unable to find zbar shared library”エラーを解消

# 環境
Mac book Air 2023(チップ:Apple M2)
macOS Sonoma 14.6.1
Python 3.12.4

# Errorの内容
pyzbarライブラリを使用してバーコードやQRコードを読み取ろうとした際に、ImportError: Unable to find zbar shared libraryErrorが発生した。
“`python
from pyzbar.pyzbar import decode
:
ImportError: Unable to find zbar shared library
“`

これが発生するのは、zbarというバーコード読み取り用の外部ライブラリがシステムにインストールされていないか、正しく認識されていないことが原因だということ。

一旦それぞれをアンインストールした上で、zbar次にpyzbarの順番でインストールしてみたが、全く解決しない中**GitHub**( https://gi

元記事を表示

pyproject.toml をベースにwhl ファイルを作る手順

Pythonでのパッケージ作成のためのツールはsetup.py(とsetup.cfg)の時代が長かった。
pyproject.toml を使ったwhl ファイルの作成手順をメモする。

#### 注意
(いまでは poetry というツールやuv, Rye というツールもあります。
まだ、それらを習得していないので、とりあえず、setuptoolsを用いた方法を試しています。)

## 前提:
すでに`python3 -m pip install .` でpyproject.tomlをもとにインストールできていること。

## 手順
“`
python3 -m pip install –upgrade setuptools wheel build
sudo apt install python3.8-venv

cd /path/to/your/project

python3 -m build wheel
ls dist
“`
## 結果
目的のwhl ファイルがえられた。

元記事を表示

WARNING: The Python tkinter extension was not compiled and GUI subsystem has been detected. Missing the Tk toolkit?の対処法

# 事の起こり

pyenvで最新版のPython(Python 3.12.1)をインストールしようとした時に以下の警告が表示されました。

**WARNING: The Python tkinter extension was not compiled and GUI subsystem has been detected. Missing the Tk toolkit?**

# 対処法
Homebrewでpython-tkをインストールします。

“`bash
brew install python-tk
“`

再度pyenvでPython 3.12.1をインストールします。今度は成功しました。

“`bash
$ pyenv install 3.12.1
python-build: use openssl@3 from homebrew
python-build: use readline from homebrew
Downloading Python-3.12.1.tar.xz…
-> https://www.python.org/ftp/python/3.12

元記事を表示

Djangoを使ってみた感想

#はじめに

「DjangoかLaravelの勉強会をやるから資料作ってくれない?」

ある昼下がり、こう上司に言われました。
Laravelは以前、同僚がやったこと、だいたいみんな使えるということ、
Djangoを使った案件が近々動き出すこと、社内に使える人が少ないことからDjangoの勉強会を開くこととなりました。

# Djangoって何?
DjangoはPythonのFrameworkの1つである。
あのFa●●bookやYo●●ubeなどもこのDjangoを使って作られている。

そういえば、Yo●●ubeではオススメの動画が表示されるが、これはPythonを使った機械学習によるものなのかな。
![スクリーンショット 2019-06-24 10.54.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/343721/355922df-ec83-d6a4-5152-1c08068fa15c.png)

## Djangoを使ってみて
DjangoとLaravel(会社に入社して一番はじめに触

元記事を表示

ラズパイでSPI接続LCDを使う

# 使用したディスプレイ

amazonで2000円ちょっとで売ってるやつ

http://www.lcdwiki.com/3.5inch_SPI_Module_ILI9488_SKU%3AMSP3520

# 動作確認環境

Raspberry Pi 4

# 接続

| name | pin # | GPIO |
|-|-|-|
|VCC | 2 | – |
|GND | 20 | – |
|CS | 24 | 8 |
|RESET | 31 | 6 |
|DC/RS | 29 | 5 |
|SDI(MOSI) | 19 | 10 |
|SCK | 23 | 11 |
|LED | 22 | 25 |
|SDO(MISO) | 21 | 9 |

# 作成したもの
https://github.com/tyano463/msp3520

# 制限事項

タッチ操作は非対応

# 懸念点

文字列単体で表示すると、表示領域以外の色がくすむ

全体を一括で表示する必要があるのかもしれない

# その他

## 一般ユーザで実行してpermission deniedになる場合

SPI

元記事を表示

path to trajectory c++ -> python

#!/usr/bin/env python3
import rclpy
import rclpy.node
import rclpy.qos
import rclpy.executors
from autoware_auto_planning_msgs.msg import PathWithLaneId
from autoware_auto_planning_msgs.msg import Trajectory
from autoware_auto_planning_msgs.msg import TrajectoryPoint
from std_msgs.msg import Float64MultiArray

class PyPTTNode(rclpy.node.Node):

def __init__(self):
super().__init__(“py_ptt”)
self.point_counter = 0
self.counter = 0
self.objectlist = []

元記事を表示

2,3体問題と数値解析

# はじめに
複数の惑星が存在した場合、その惑星が万有引力によりどのような軌跡を描くのかを調査する問題を多体問題という。一般的に3体問題以上の系は厳密に数式を用いて運動方程式を解くことができない。そこで、今回は2体問題や3体問題についてpythonを用いた差分法で運動方程式を解くことにより、適切な計算量以内の範囲でシミュレーションをすることを目的とする。

# アルゴリズム
加速度と変位の関係式である運動方程式から変位を求めるために、以下のようなアルゴリズムを用いる。

## 速度と変位
微小区間($t=t$から$t=t+\Delta t$)に粒子の加速度$\textbf{a}$が与えられたとき
速度と変位は以下のように表すことができる。これは、微分の定義から来ている。

“`math
\textbf{v}(t+\Delta t)=\textbf{v}(t)+\textbf{a}(t)\Delta t
“`

“`math
\textbf{x}(t+\Delta t)=\textbf{x}(t)+\textbf{v}(t)\Delta t
“`
これを$t=0$から$t=t$ま

元記事を表示

文字の一致 print内にif文を埋め込む

https://paiza.jp/works/mondai/d_rank_skillcheck_sample/diff_str

今回、print内にif文を書くことで、短い行数で同じ動作をするプログラムをPython 3で書いてみた。
もし、正しいif文で書くとこのようになる。
## プログラム本文
“`py:patern1.py
a = input()
b = input()
if a == b:
print(“OK”)
else:
print(“NG”)
“`
print文の中で処理をするように書き直すと以下のようになる。
“`py:patern2.py
a = input()
b = input()
print(“OK” if a == b else “NG”)
“`
## 結果と分析
### patern1の場合の結果
![スクリーンショット 2024-08-20 214201.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3828295/fb709aad-76b1-1

元記事を表示

AtCoder Python チートシート

## 入力
### 一行だけ取る
|Input |script |結果 |
|—|—|—|
|abcde|s=input() |s=’abcde’ |
|abcde |s=list(input()) |s=[‘a’, ‘b’, ‘c’, ‘d’, ‘e’] |
|5(1つだけ) |a=int(input()) |a=5 |
|1 2 |x,y = map(int,input().split()) |x=1,y=2 |
|1 2 3 4 5 … n |li = input().split() |li=[‘1′,’2′,’3′,…,’n’] |
|1 2 3 4 5 … n |li = list(map(int,input().split())) |li=[1,2,3,4,5,…,n] |
|FFFTFTTFF |li = input().split(‘T’) |li=[‘FFF’, ‘F’, ”, ‘FF’] |
### 複数行取る
#### patern 1
“`py:input.txt
3
a
b
c

元記事を表示

Python3: List A から List B の要素を除く

リスト内包表記 を使います。

## プログラム

“`py:remove_list.py
#! /usr/bin/python

list_aa = [1, 2, 3, 3, 4, 5, 4, 5, 6]
list_bb = [4,5]
print(list_aa)
print(list_bb)
bb_set = set(list_bb)
new_list = [item for item in list_aa if item not in bb_set]
print(new_list)
“`

## 実行結果

“`text
$ ./remove_list.py
[1, 2, 3, 3, 4, 5, 4, 5, 6]
[4, 5]
[1, 2, 3, 3, 6]
“`

元記事を表示

Pythonで自然言語処理 (NLP) を使って感情分析をしてみた

こんにちは!今回は、Pythonを使って簡単な感情分析を行う方法を紹介します。感情分析は、テキストデータがポジティブ(肯定的)かネガティブ(否定的)かを判断する技術です。これを通じて、NLP(自然言語処理)の基本を学びましょう。

# 1. 必要なライブラリのインストール
まず、必要なライブラリをインストールします。以下のコマンドを実行してください。

“`
pip install numpy pandas scikit-learn nltk
“`
これで、データの前処理や機械学習モデルの構築に必要なツールが揃います。

# 2. データの読み込み
次に、ユーザーレビューが格納されたCSVファイルを読み込みます。レビューには、テキストの内容とそれがポジティブかネガティブかを示すラベルが含まれています。
“`
import pandas as pd

# CSVファイルからデータを読み込む
data = pd.read_csv(‘sentiment_reviews.csv’)
print(data.head())
“`
この段階で、データが正しく読み込まれているかを確認しましょう

元記事を表示

djangoのlogin_requiredデコレーター実装について調べた

## デコレーターとは

関数の前後に他の特定の処理を入れ込む機能です。オープンソースでも使われているとの情報を確認し、実際の実装を見ていましたが、djangoで使われていると記事を見たので、コードを調べて複雑な点をメモ書きとして残しておきます。

## djangoの login_required の例

https://github.com/django/django/blob/main/django/contrib/auth/decorators.py

“`python

def login_required(
function=None, redirect_field_name=REDIRECT_FIELD_NAME, login_url=None
):
“””
Decorator for views that checks that the user is logged in, redirecting
to the log-in page if necessary.
“””
actual_decorator = user_

元記事を表示

Pythonのasync/await

Pythonの`async`と`await`キーワードは非同期タスクを管理するために使用されます。

非同期プログラミングは、他のタスクをブロックすることなく複数のタスクを同時に処理できるようにします。Pythonでは、コルーチンを使用してこれを実現します。

`async`キーワードは、関数を非同期コルーチンとして定義するために使用され、`await`キーワードはコルーチン関数内で別のコルーチンの実行を待つために使用されます。

### コルーチンとは何か?
コルーチンは、特定のポイントで実行を一時停止し、再開する機能を持つ通常の関数とほぼ同じです。これにより、非ブロッキング動作が可能になり、コルーチンの実行が遅延した場合や、他のコードを実行するために意図的に実行を一時停止することができます。

コルーチンはジェネレータ関数と非常に密接に関連しています。実際、Python 3.5で`async`と`await`が導入される以前は、ジェネレータ関数を特別な方法で使用してコルーチンを実装していました。

Python 3.5以降のバージョンでは、`async`と`await`という2つの

元記事を表示

名刺バインダー管理 (paizaランク B 相当):Python3解答例

### 背景
![スクリーンショット 2024-08-17 20.24.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527611/015c47bf-1587-6236-3af8-9e1eaf57f0b3.png)

1枚のファイルには、n個のポケットが横に並んでおり、表と裏の両面から名刺を眺めることができます。
このため、1つのポケットには、2枚の名刺が背中合わせに入っています。

– 1番からn番の名刺は、1枚目のファイルの表面から見たときに左詰めに並んでおり、
– n+1番から2n番の名刺は、1枚目のファイルの裏面から見たときに左詰めに並んでいます。
– 2枚目以降のファイルにも同様に名刺が並んでいます

このプログラムは、名刺を収納したバインダーにおいて、与えられた名刺番号 `m` に対応する裏側の名刺番号を求めるものです。各ポケットには2枚の名刺が背中合わせに入っており、1枚のファイルには `n` 個のポケットが並んでいます。

### 全体のコード

以上のステップをまとめると、最終

元記事を表示

【合格体験記】Python 3 エンジニア認定実践試験

## はじめに
前回に続き、Python 3 エンジニア認定実践試験の受験所感を記事にしようと思います。
Python 3 エンジニア認定データ分析試験は以下記事にしているので、よろしければ併せてご覧ください。

https://qiita.com/mmm_qiita/items/77f6050acb9254d4d04a

## Python 3 エンジニア認定実践試験とは
概要は以下となります。

:::note warn
記事投稿時の情報となり、内容が変更される可能性がありますので、受験される際はご自身でもお調べいただくことをおすすめいたします。
:::

| 内容 | 詳細 |
| —- | —- |
| 主催 | 一般社団法人Pythonエンジニア育成推進協会 |
| 試験内容 | ・より実践的なPython文法を出題
 ※Python 3 エンジニア認定基礎試験の上位資格 |
| 試験時間 | 75分 |
| 試験形式 | 選択式 |
| 問題数 | 40問 |
| 合格ライン | 70%(28問以上の正解で合格) |
| 受験料金 | 一般: 13,200円(

元記事を表示

Python3: Fizz Buzz (paizaランク C 相当)やってみた

分岐の問題なんですが、単純な繰り返しでもある。

https://paiza.jp/works/mondai/c_rank_skillcheck_sample/fizz-buzz

“`py:
def fizzbuzz_gen():
F = “Fizz”
B = “Buzz”
FB = “Fizz Buzz”
i = 0
while True:
yield from (
i+1, i+2, F, i+4, B
, F, i+7, i+8, F, B
, i+11, F, i+13, i+14, FB
)
i += 15

fb = fizzbuzz_gen()

N = int(input())

for _ in range(N):
print(next(fb))
“`
分岐なしでやってみました。無駄な演算をなるべく減らしてみます。

“`py:
unbox = lambda *xs: xs[-1]

元記事を表示

【python】単語のカウント問題を解きました

# はじめに
paiza様のpython問題集から、単語のカウント問題を解きました

## 問題
>スペースで区切られた英単語列が与えられます。
>英単語列に含まれる英単語の出現回数を出現した順番に出力してください。

## 実装したソースコード
“`python
array1 = input().split(‘ ‘)
array2 = []
for x in array1:
if x not in array2:
array2.append(x)

for y in array2:
count = 0
for z in array1:
if z == y:
count += 1
print(y + ” ” + str(count))
“`

## 実行した結果
![test1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1055346/50a9fe59-5c4c-ed95-ce1a-fcc591340e4b

元記事を表示

素人が大会を盛り上げるSlackボットをDifyで作ってみた

# はじめに
[技術チャレンジ部](https://challenge-club.connpass.com/)のとも(Tomo)です。チームTPACで[自動運転AIチャレンジ2024](https://www.jsae.or.jp/jaaic/2024ver/summary/)に[参加中](https://www.jsae.or.jp/jaaic/2024ver/contest/)です。
[こちらの記事](https://qiita.com/tomo-v/items/6aeec8c27cc5586d4fa8)で作ってみたDiscordのボットを、Slackに移植してみました。

https://qiita.com/tomo-v/items/6aeec8c27cc5586d4fa8

素人なので、変なことを言っていたらすいません!

# 設計方針
Discordで作ったボットのアーキテクチャをなるべく流用するために、以下の方針としました。
– PythonのライブラリからSlack APIを使用する
– Pythonスクリプトがクライアントになる

# Slackのボット
## フレーム

元記事を表示

pythonのwebdriverを使っていたところOSErrorが出た件

# エラー内容
毎日のようにbatファイルからpythonをタスクスケジューラ実行しているのですが、先日いきなりこのようなログが返ってきました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3480692/f368ee41-e555-5b28-7520-bc6df85853ed.png)

OSError:[WinError 193] %1 は有効なWin32アプリケーションではありません。

# 対処方法
Webdriverで困ったときはだいたいツイッターで検索して対処法を探すのですが、
今回もツイッターで既に対応方法を書いている方がいらっしゃいました。

https://x.com/alt_ego_project/status/1817923781748535785

最新版のアップデート
pip install webdriver_manager –upgrade

よく分かりませんが、こちらを実行すると問題なくpythonがまた実行できるようになりました。

私ももっとwe

元記事を表示

「mapitool.exe」(ruby-msg)を代替するPython版mapitool(暫定)の作成

# 1. きっかけ
こちらの[『IIJ セキュアMX』Windows環境で動作する「SMX迷惑メール誤判定報告ツール」を作成しておきました](https://qiita.com/hiro-matsumoto/items/d62f09cf46ded2621a44)にて、
OutlookのMSG形式メールをeml形式に変換するツールとして、
rubyで作成された「mapitool-1.5.0-mswin32-stand_alone.zip」(ruby-msg)を使っていました。

(cles::blog 平常心是道 様)[.msg を .eml に変換する (ruby-msg編)](https://blog.cles.jp/item/6664)

(Githubリポジトリ) https://github.com/aquasync/ruby-msg
(Google Code Archive)https://code.google.com/archive/p/ruby-msg

(Qiita)[Outlook のメールデータ:インポート・エクスポート](https://qiita.com/ke

元記事を表示

OTHERカテゴリの最新記事