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

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

python-lambda-local を使って AWS Lambda 関数をローカル環境で実行する

# はじめに
Lambdaのプログラムをテストする際、毎回 Lambda 関数を更新して実行するのは面倒ではないですか?
そこで良い方法ないかなと調べていたところ、 **python-lambda-local** というツールを知りました。

https://github.com/HDE/python-lambda-local

# 仕様
Python 3.7+
今回試した環境のバージョンは 3.9.6 でした。
“`bash:バージョン
$ python3 –version
Python 3.9.6
“`

# インストール
pip でインストールすれば完了です。

“`bash:インストール
$ pip install python-lambda-local
“`

# オプション
使い方とオプションは以下になります。

“`bash:使い方
$ python-lambda-local [-h] [-l LIBRARY_PATH] [-f HANDLER_FUNCTION]
[-t TIMEOUT] [-a ARN_ST

元記事を表示

Macでのpython-axolotl-curve25519インストール時のエラー対処

#### 前置き
この前、MacBook Proでpython-axolotl-curve25519をインストールしようとしたら、エラーが出たので対処法を書き留めておく。
github: https://github.com/tgalal/python-axolotl-curve25519

### エラー内容
“`
DEPRECATION: Loading egg at /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/python_axolotl-0.2.3-py3.11.egg is deprecated. pip 24.3 will enforce this behaviour change. A possible replacement is to use pip for package installation.. Discussion can be found at https://github.com/pypa/pip/issues/12330
Collect

元記事を表示

【Python】Lambda Layerの作成方法

# Lambda Layerを作成したいがめんどくさい
Lambda LayerはAWS Lambdaに標準で用意されていないライブラリや自分で作成した関数などを取り込む際に利用します。
一見zipファイルを作成してアップロードするだけなんですが、いくつか落とし穴があります
– Amazon Linuxで作成する必要がある(場合がある)
– LambdaはAmazonLinuxで動いている
– macOSなどでインストールしたものがAmazonLinuxで動かない場合があるため
– 求められるディレクトリ構造が実はある
– apiでのzipアップロードはファイルサイズの制限がある

などなどで躓いたのでやり方をまとめておきます

## AmazonLinuxでのpython実行環境の用意
構築方法は別記事にまとめました。ローカル環境(macOSやWindows)でインストールしたライブラリをアップロードすると、動くときもありますが動かないときもあります。仮に動いたとしても、基本的にはAmazonLinuxで作成するほうが良いでしょう。
pythonはLambdaで使用す

元記事を表示

Anacondaで実行可能なPython(バージョン)の検証

# 目的
Anaconda3[^1]で実行できるPythonのバージョンを検証してみます[^2]
[^1]:Anacondaとは、Anaconda社によって開発、配布されているPythonディストリビューションです
[^2]:検証モジュール:Anaconda3-2024.02-1-Linux-x86_64.sh

# AnacondaとPyPIについて
バージョン違いのPython実行用環境を複数用意しようとした場合、Anacondaの方が簡単に環境構築できます。Anacondaをインストールするだけで、condaコマンドを使って異なるバージョンのPython実行環境を構築できます。

一方、Anacondaと比較されることがあるPyPIで同じことを実施しようとした場合、手動でバージョン管理を行う必要があります。バージョン毎に公式サイトからPythonをダウンロードしてインストールしなければなりません。

# Anacondaインストール方法
###### インストール環境
* Red Hat Enterprise Linux 9.4
* Anaconda3-2024.02-1-Lin

元記事を表示

メールログからFWにて怪しいIPをブロック

# メールログから怪しい国外IPアドレスを取得しブロックする方法

このスクリプトは、メールログから取得したIPアドレスをファイアウォールでブロックします。
日本国内のIPアドレス範囲に該当するIPは除外し、それ以外のIPをブロックします。

## 1. Pythonスクリプト (`/root/fw_script/deny_ip.py`)

“`python
“””
deny_ip.py
このスクリプトは、メールログから取得したIPアドレスをファイアウォールでブロックします。
日本国内のIPアドレス範囲に該当するIPは除外し、それ以外のIPをブロックします。
“””

import ipaddress
import subprocess
import datetime

log_entries = []

def log(message):
print(message) # コンソールに出力
log_entries.append(message) # ログエントリに追加

# 日本のIPアドレス範囲を読み込み
with open(‘/root/fw_script/

元記事を表示

PLCとマイコンの接続で躓いたこと

# はじめに

こんにちは、株式会社COSMでインターンをしている東京大学工学部4年の前澤です。

今回、製造業のDXを推進するCOSM IoT Gateの開発にあたり、PLC(キーエンス製KV-8000シリーズ)とマイコン(ラズベリーパイを使用)を接続し、センサデータを取得しました。その方法、および苦戦したことの解説をします。

## COSM IoT Gateについて

工場内の機械についている、センサを通してあらゆるデータを取得し、その情報をオンラインで一元管理を可能にし、DXを推進するプラットフォームです。

具体的には、センサ情報をリアルタイムで監視し、さらにそれらを時系列データとしてクラウド上で保存、機械学習での分析を行うことで、故障や部品の交換タイミングの予測を行います。

[COSM IoT Gate](https://gate.cosmcorp.jp/)

## 背景

上記で解説したCOSM IoT Gateの最も予想されるユースケースは、工場内のマシンの情報を取得し、管理するというものです。

ここで重要になるのが、PLCからのリアルタイムでの情報の取得です。

元記事を表示

Amazon Linux2023にpyenvを利用してpython3.12をインストール

# pyenvのinstallのドキュメントがややこしい
基本はpyenvのドキュメントを見れば良いのですが、ぱっと理解できずまとめておきます

https://github.com/pyenv/pyenv?tab=readme-ov-file#getting-pyenv

## EC2のスペック
最初スペックがいらないのでt3.nano、EBS8GBでインストールしようとしたのですがメモリ・ストレージ(tmpディレクトリ)が足りなくてインストールできなかったので今回はt3.small,16GBでインストールしています。

## 手順

1\. 事前に必要な開発ツールをインストール
“`shell
# pyenvに必要なものをinstall
sudo yum groupinstall “Development Tools”
sudo yum install -y bzip2-devel ncurses-devel libffi-devel readline-devel openssl-devel zlib-devel
“`

2\. pyenvのインストール
“`shell
cu

元記事を表示

ファイル形式を変換するデスクトップアプリ

# ファイル形式を変換するデスクトップアプリ

### はじめに
備忘録です。数年前に作ったコードで、とても汚いので戒め的な意味もあります。

## ソースコード

“`python:henkan_meijin.py

import os
import wx
import time
import ffmpy
import ffmpeg
j1 = os.path.dirname(os.path.abspath(__file__))

class FileDropTarget(wx.FileDropTarget):
def __init__(self, window):
wx.FileDropTarget.__init__(self)
self.window = window #ファイルをドロップする対象

def OnDropFiles(self, x, y, filenames):
for file in filenames:
self.window.box.SetValue(file)

元記事を表示

Pillow: カラー画像を白黒に変換

## プログラム

“`py:convert_to_gray.py
#! /usr/bin/python
#
# convert_to_gray.py
#
# May/28/2024
# ——————————————————————–
import sys
from PIL import Image
# ——————————————————————–
sys.stderr.write(“*** 開始 ***\n”)
file_in = sys.argv[1]
file_out = sys.argv[2]
sys.stderr.write(file_in + “\n”)
sys.stderr.write(file_out + “\n”)
#
aa_jpg = Image.open(file_in,’r’)

gray_img = aa_jpg.convert(‘L’)
#
gray_img.save

元記事を表示

Python3 株価データ取得

### 概要
“`
株価データを取得しグラフを作成しExcelファイルに出力する。
“`

### 詳細
“`
1
必要なライブラリをインポート。データのダウンロード(yfinance)、データの操作とグラフの作成(matplotlib.pyplot)、Excelファイルの作成(openpyxl)が含まれます。

2
yfinanceを使用して、指定した銘柄コード(この場合はトヨタの”7203.T”)の過去6ヶ月間の株価データをダウンロードします。

3
ダウンロードしたデータをコンソールに表示します。

4
matplotlib.pyplotを使用して、ダウンロードしたデータから終値の折れ線グラフを作成し、画像ファイル(graph.png)として保存します。

5
openpyxlを使用して新しいExcelワークブックを作成します。

6
ダウンロードしたデータをExcelの”Data”シートに書き出します。

7
作成したグラフの画像を新しい”Graph”シートに追加します。

8
作成したExcelワークブックをtoyota_stock_data.xlsxという名前のファイ

元記事を表示

ABC355 with Python (A~D, F)

ABC355のA~D, F問題をpythonで解説していきます。筆者はA-Dの4完でした。

# A – Who Ate the Cake?
## 問題
高橋君のケーキが誰かに食べられてしまいました。ケーキを食べた犯人の候補として、人 $1$、人 $2$、人 $3$ の三人が挙げられています。

犯人の目撃者はりんごさんとすぬけくんの二人がいます。りんごさんは人 $A$ が犯人でないことを覚えており、すぬけくんは人 $B$ が犯人でないことを覚えています。

二人の記憶から犯人を一人に特定できるかどうか判定し、特定できるならばその人の番号を出力してください。

https://atcoder.jp/contests/abc355/tasks/abc355_a

## 考察
人1から人3まで順に、無実リストに入っているかチェックします。入っていない人をリストに入れていき、最終的にその長さが1より大きかったら怪しい人が複数いるため特定不可の-1、そうでなればそのリストに入っている人を答えとして出力すればよいです。

## コード
“`python:A.py
ans = []
candi

元記事を表示

Python3: Moodleの「参加者」の「詳細レポート」で、小テストを実施した回数をカウントする

# はじめの前のおねがい
できれば「いいね♡」をお願いします。励みになります。

# はじめに
このコードは**Python3**に対応したMoodleの「参加者」の **「詳細レポート」** から、**小テストを実施した回数**をカウントするためのものです。

# このコードの目的
Moodleは低コストで課題や小テストなどが運用できるのは良いのですが、データベースが **学生さんごとに表示されることを前提**としていて、なんとなくカード型データベースっぽい感じがします。学生さん1人1人を見るときにはそれで良いのですが、授業運営をする場合には**小テスト**の最高点がどうなのか、受験回数はどうなのかといった統計値を出す必要があるわけで、基本的にはサイドバーの「評定」を使用して得点状況については一覧性のあるデータを抽出できるわけですが、正直言って小テストが多ければ多いほど、学生さんが増えれば増えるほどスクロールも増え、どうも統計値を出すのにExcel(あるいはNumbers)の方が使い勝手が良くなります。

その場合、**何度受験しても構わないし、その中で最高点を評価として使用する**

元記事を表示

SSH接続しているサーバー上でPythonの最新版をインストールしたい

SSH接続しているサーバー上でPythonの最新版をインストールしたい

# 私の状況
Python コマンドを打てば、下記のようなものが出たがバージョンが2.xxxでちょっと古かった

~~~
$ python
Python 2.7.5 (default, Nov 16 2020, 22:23:17)
[GCC xxxxxxxxxx (Red Hat x.x.x-xx)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> python3
Traceback (most recent call last):
File ““, line 1, in
NameError: name ‘python3’ is not defined
>>>
KeyboardInterrupt
>>>

~~~

Python3を打つと下記のように出てしまう

~~~
bash: python3: command not found…
Simi

元記事を表示

Webカメラを使おう

# はじめに
こんにちは、@yomo93 です。
私は画像処理を用いたロボットの制御について研究しています。そこでロボットの制御と**リアルタイムカメラ映像取得**を同時に行うために作成したプログラムをご紹介したいと思います。
今回はPCにUSB端子を用いて接続したカメラを用いることを想定しています。

# カメラ設定
リアルタイム映像を取得するにあたって、カメラ設定を指定する必要があります。それらの設定は`config.json`という設定ファイルを作成してそこに記述するようにしましょう。Webカメラを使うということは撮影現場での調整が必要ということです。現場ではできる限りプログラムはいじらず、`config.json`を編集する方が楽だし早いです。
以下に`config.json`の記述例を記します。このファイルの中身をプログラムから読み込みます。

“` config.json
{
“cam_num”: 0,
“width”: 1440,
“height”: 1440,
“fps”: 15,
“is_record”: true

元記事を表示

Pytorchから逆算したNvidia-DriverとCUDAのインストール

# 初めに

この記事は、普段Pytorchで深層学習を行う私の、CudaとNvidia-Driverのインストール方法のメモです。そのため、Pytorchを使用しない人はその他のサイトを参考すると良いかもしれません。

また、間違った認識・記述があれば、是非コメントお願いします。

# 準備
まずは、以下4つを調査する。

0. LinuxのKernel等のバージョンを確認
0. PytorchのサイトでPytorchが対応しているCUDAのversionを確認
0. 対象CUDAのためのNvidia-Driverのversionを確認
0. Nvidiaサイトでサポートしている対象CUDAのUbuntu環境を確認

## 1. Linuxのkernelのバージョンを調査
私が使用した環境は、以下の表で示す。
| Distribution | Kernel | GPU |
|———–|————|————|
| Ubuntu 20.04.6 LTS | 5.4.0-182-generic | GeForce RTX 4090 |

元記事を表示

【python】配列の要素の値を簡単に変える方法

# はじめに
pythonで特定の要素の値を変える方法を簡単に実装しました。

## 問題
>1 行目に整数 A, B, N が与えられます。
>2 行目に N 個の整数 a_1, a_2, …, a_N が与えられます。
>N 個の整数のうち、その数が A だった場合、B に書き換えてください。
>書き換えた N 個の整数を改行区切りで出力してください。

## 実装したソースコード
実装したソースコードは下記になります。

“`python
b,t,n = map(int,input().split())
array1 = list(map(int,input().split()))
for i in range(n):
if array1[i] == b:
array1[i] = t
print(array1[i])

“`

## 実行した結果
![test2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1055346/3835438e-735f-261

元記事を表示

食わず嫌いだった話【thonnyとatomと僕】

こ、こいつ…動くぞ!

# はじめに
– [前回](https://qiita.com/kei_tnk/items/f217e9fbb04c5a79ad30)、ラズパイ一家の異分子picoを愛でたとき、thonnyというpython用のIDEを動かしたらあっさりとpicoを動かすことが出来て、感動した。
– もしかしたらarduinoIDEよりも簡単かも!と思ったので、M5AtomMatrix(以下、atom)をおもむろに刺してみたら、なんかシリアルモニタな感じで出力を吐き出したので、もう少し弄ってみることにした。
![GIF_20240526_181257_891.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/4328db61-f2fb-04dc-5a92-71be17ee0039.gif)

# atomに入ってたarduinoIDEでのコード
– 元々、arduinoIDEで、こんな感じのプログラムを書いていた。シリアルモニタへの吐き出しがthonnyのシェルでも認識されると

元記事を表示

Redhat Enterprise Linux Server 6.3をVirtualboxへインストールしてPython3.7.17をビルドする手順

# はじめに

古いOSでPython3.7をインストール必要があり、環境構築からPython3.7.17をビルドするまでの手順をまとめます。

# 環境構築

Windows10にVirtualboxをインストールし、仮想環境にRedhat Enterprise Linux Server 6.3をインストールします。

Redhat Enterprise Linux Server 6.3のインストールメディア(ISOファイル)はRedhatのサポートページへログインしてダウンロードします。

Virtualbox 7.0.18ではインストールDVDが起動しませんでした。
Virtualbox 6.1.50は起動できました。

RedhatのインストールはSoftware Developmentを選択します。
デフォルトのBasicではビルドに必要なソフトウェア(gccなど)がインストールされません。

# RedhatへSSHログインする

macOSからRedhatへSSHでアクセスするとエラーが表示されました。

“`bash
$ ssh root@192.168.3.128

元記事を表示

discord.pyでメンバー一括ミュート&解除bot~ポモドーロ添え~

もくりヘビーユーザーだった。
哀しい事にもくりは旅立ってしまった。
ので疑似集中モードを作ってdiscordに導入した。
けどものすごく右往左往したので書き記すことにした。

:::note warn
botの中身のみの記事になります。
discordのbotそのものの作成方法については扱いませんので、下記を参考に作成してください。

[Botアカウント作成(公式ドキュメント)](https://discordpy.readthedocs.io/ja/latest/discord.html ‘Botアカウント作成’)

:::

## やりたいこと

+ ボイチャに参加しているメンバーをコマンド一つで全員サーバーミュートにする
+ ポモドーロタイマーの機能を持たせ、集中時間は全員ミュート&休憩時間はミュート解除になるようにする
+ ボイチャに途中参加したメンバーを最初からサーバーミュートにする
+ ミュートとミュート解除のタイミングで好きな音を流したい
+ Pythonで作りたい

## 用意したもの
+ Windows 11
+ Python 3.12.3
+ discord.py

元記事を表示

DjangoでCloudinaryを使いたい!!

## はじめに
私は2022年の4月から一念発起して、エンジニアを目指し勉強を開始したtoamokuです。
オンラインスクールとUdemyなどを活用し、日々学習しております。転職活動も同時に行っておりますが、まだ決まっておりません。早くエンジニアになりたーい!

今回はQiitaに初めて記事を投稿することにしました。今までは全く外に向けての発信などはしていなかったので、学習内容の復習と言語化をするためにこの記事を書いています(転職活動の一環でもあります)。ぜひ最後までご覧いただけると幸いです。

## 前提条件
Djangoについては、基本的な知識があることを前提でお話を進めてまいります。
PCはmacを使用しています。

## Djangoの紹介
Djangoは、Pythonで開発された高水準のWebフレームワークです。再利用可能なコードの提供、シンプルなURL設計、強力な管理インターフェース、そしてセキュリティ機能など、豊富な機能を備えています。

これにより、開発者は煩雑なWeb開発タスクを自動化し、アプリケーションの構築に集中できるようになります。また、Djangoはオープンソ

元記事を表示

OTHERカテゴリの最新記事