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

Python関連のことを調べてみた
目次

Pythonのvenvを使用時に遭遇した証明書の問題とその解決方法

# はじめに
Windowsにて、Pythonで仮想環境(venv)を作成し、それを有効化(activate)しようとした時、「信頼されていない発行元からのソフトウェアを実行しますか?」という警告が表示されるでしょう。この警告は、システムがPython Software Foundation発行のスクリプトを信頼していないために起こります。この記事では、この際に「常に実行しない」を選択してしまった場合の解決方法を紹介します。
確認したのはWindows10のみです。ただ、Windows11でも同様の操作で同じUIのcertmgrが開かれたので、おそらく解決すると思われます。

# 問題発生までの流れ
仮想環境を有効化しようとすると、以下のようなメッセージが表示されます。
“`
PS C:〇〇> .\venv\Scripts\activate

この信頼されていない発行元からのソフトウェアを実行しますか?
ファイル C:〇〇\venv\Scripts\Activate.ps1 の発行元は CN=Python Software Foundation, O=Python Software

元記事を表示

Pythonでmp4の動画から音声のみを抽出したmp3ファイルを作成する

# 前提
– mp4の動画から音声のみを抽出したmp3ファイルを作成したい
– 今回はffmpeg-pythonライブラリを使います
– [Github: ffmpeg-python](https://github.com/kkroening/ffmpeg-python)
– mp4ファイルはBytesIOの形式で渡されるものとします

# 実装

“`py
import tempfile
import ffmpeg
from io imoprt BytesIO

def convert_to_mp3_from_mp4(file: BytesIO)

# ffmpegのinputはファイル形式しか受け付けないためtempfileで一時ファイルを作成します
with tempfile.NamedTemporaryFile() as temp_file:
temp_file.write(file.getvalue())
# mp3に変換します
(
ffmpeg
.input

元記事を表示

amplifyでQUBOの定式化を行う

イジング計算機用のqubo(Ising)モデル定式化には,sympyやpyqubo,amplifyが存在する。実行速度やライブラリの更新頻度からamplifyが一番よさそう。

備忘録としてまとめておく。
(公式ドキュメント https://amplify.fixstars.com/ja/docs/amplify/v0/index.html)
v0とv1があり異なる部分があるようだが、v1は執筆途中なのか未記載の部分が多い為v0を参考にしている。

ここではTSPの定式化を例に。

# 0. amplifyのインストール
condaにはなさそうなのでpipでインストール。python3.8~3.12まで対応しているらしい。
“`python
pip install amplify
“`

# 1. 変数を作成
SymbolGeneratorで変数を作成。配列の次元数は自由に選べる。
“`python
gen = SymbolGenerator(BinaryPoly) # 変数変数ジェネレータを定義
qubo_symbols = gen.array(city_num,city_

元記事を表示

平面図形 相似「2024 愛知県高校入試 数学大問3(2)」をsympyとFreeCADでやってみた。

**パイソニスタの方へ**
・ver0.2のPoint(1,0)を使わない方法を教えて下さい。angle_betweenにしました。

**問題文は2次元ですが、3次元FreeCADのマクロで、XY平面上に作図しました。**
いつものベクトルの成分表示?です。

# オリジナル
#### 東進 様
**大問3(2)**。ページの下半分です。正方形の問題です。
https://www.toshin.com/koukou_nyushi/files/2024/sugaku_q/aichi_sugaku_q.pdf#page=7
<2024年全国公立高校入試解答速報|大学受験の予備校・塾 東進
https://www.toshin.com/koukou_nyushi/

#### youtube
大問3(2)。途中からです。(1:06:07) 2024年愛知県公立高校入試<数学>解説

>愛知県は相似が好き…
>数学には、『この問題にはこの解き方!』という制限は全くない…

# sympyで(オリジナル 様のやり方で

元記事を表示

Thonnyを使ってPythonでChessを作ってみる#01 駒の移動と今更ながらのクラス化

## 始めに
前回のが最初で最後のQiitaの投稿になると思ってたけど、「ふと書かないとな」と思い、溜まってた作業の進捗を記述する。Python初心者なので先輩等が引っかかってきた数々のトラップに引っかかってきました。番外編でまとめる予定なので「あ~これ俺もひっかかったな~」なんて気持ちで見てあげてください。同じ初学者の人たちは参考にするなり煮るなりしてうまく活用してくれ。

[ここにいつか番外編リンクを貼る]()

 前回の投稿から間が空いたのは大3の就活生だから色々とすべきことが多くてなかなか時間作れなかったから。続けているだけ偉いぞおいら。

 タイトルにあるように今更ながらにプログラムをクラス化してみる。
 なんかプログラム組むとき、最初に一通りの流れで書いちゃうからクラス化あと回しになって苦しむことになる。今回も例に漏れずそのパターン。クラス化なんかしなくても幸せにいられたかもしれないと思えたのも若いうちまでだったのね。

### クラス化しようと思ったきっかけ
* 棋譜を記録するときとかに駒ひとつひとつのムーブを記録していく必要を感じたため
* 白駒動かしたあとに

元記事を表示

OpenCVで動画を読み込みPyQt5に表示してみた(車輪の再開発)

# フレーム単位/秒単位で操作できるプレーヤー

## 目的
下記目的に合致するものがなかったので、都合のいいように作りました。

– OpenCVで読み込んだ動画を、フレーム単位で別のデータと同期を取るため
– OpenCVのフレーム単位で、コマ送り・戻しをしたい
– フレーム番号指定で移動
– 秒単位で移動(浮動小数点OK)
– 自動連続コマ送り(なんちゃって再生機能)
– QtのWidgetとして再利用可能

## 実装
“`python:VideoPlayerWidget.py
import cv2
import sys
import argparse
from PyQt5 import QtWidgets, QtCore, QtGui

class GraphicsView(QtWidgets.QGraphicsView):
areaSelected = QtCore.pyqtSignal(QtCore.QRectF)

def __init__(self, *argv, **keywords):
super(GraphicsView, se

元記事を表示

N-QueensパズルのQUBOをSymPyで生成し,Gurobiで解く

# N-QueensパズルのQUBO化
[N-Queensパズル](https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%A4%E3%83%88%E3%83%BB%E3%82%AF%E3%82%A4%E3%83%BC%E3%83%B3)をSymPyを使ってQUBO問題として記述し,[Gurobi optimizer](https://www.gurobi.com/solutions/gurobi-optimizer/)で解くPythonプログラムです.

$n\times n$のボードに$n$個のクイーンを配置する問題ですが,QUBO化するにあたって,$n\times n$の2値行列$X=(x_{i,j})$を用いて,$x_{i,j}=1$のときにQueenが座標$(i,j)$に置かれているとみなします.このとき$X$がN-Queensパズルとして正しい解である必要十分条件は次の通りです.
* 各行各列に1が1個ずつ(one-hot条件),かつ
* 斜め方向の各ライン上に1が0個か1個(zero-one-hot条件).

# one-hot条件とz

元記事を表示

Pythonの環境構築と仮想環境作成法

# はじめに
今回は、Pythonの環境構築法についてまとめたいと思います。
また、`pyenv`を用いた仮想環境作成もあるかと思いますが、私は慣れておりませんので別法を紹介したいと思います。
それではれっつらごー(/・ω・)/

# minicondaのインストール
Pythonの環境構築をするために、[miniconda](https://docs.conda.io/projects/miniconda/en/latest/)をインストールします。
Windowsの`Miniconda3 Windows 64-bit`をクリックし、インストーラーをダウンロードします。
インストーラーの3ページ目では`Just Me`が選択されていることを確認して次に進んでください。

![justme.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524375/10482ce7-5d4b-ea17-347f-934ed76d311f.png)

5ページ目の上から2番目のチェックボックスにチェックを入れて、環境変

元記事を表示

【i3wm】左右のワークスペースに移動するスクリプト【Python】

## はじめに
`$ i3-msg workspace next`で「次」のワークスペースに移動することは出来るけれども、「隣」のワークスペースに移動する方法が見つからなかったのでスクリプトを作りました。その備忘録です。

https://github.com/yurinohaku/yuri_scripts/blob/main/move_ws.py

例えば、今開かれているワークスペースが`[‘1′,’3′,’mail’]`のとき、`’1’`の「次」の`’3’`ではなく、`’1’`の「隣」の`’2’`に移動するようにします。

`move_ws.py –direction right`で右隣に移動、`left`で左隣に移動します。`–move` を指定するとフォーカスしているウィンドウごと移動します。

これをi3wmのキーバインドに設定して使っています。

## スクリプト全体の流れ
“`python
def main():
args = get_args()
move = args.move
direction = args.direction

元記事を表示

【Python】ボイラープレートなメソッドを、呼び出し可能オブジェクトを返すディスクリプタで型安全にDRY化しよう

## はじめに
私が開発に参画しているプロダクトでは[`pywinauto`](https://github.com/pywinauto/pywinauto)を使用して業務チームの作業効率化を行なっています。
そのプロダクトでは原則1つの画面コンポーネントを操作するオブジェクトを1つのクラスとして実装する規約があります。

そのため、操作対象の画面ごとに`pywinauto.controls.uiawrapper.UIAWrapper`を属性として持つコンポジションクラスを無数に定義しています。

そうすると、下記のように実装内容が共通しているメソッドがクラスに定義されていきます。

“`py
from dataclasses import dataclass

from pywinauto.controls.uiawrapper import UIAWrapper

@dataclass
class WindowA:
“””画面Aを操作する”””
wrp: UIAWrapper

def OpenWindowB(self) -> “WindowB”:

元記事を表示

Qiitaでフォロバするのがめんどくさい。自動化してみよう。

# 初めに
私はなぜか、初めのころ、Qiitaでフォロバは絶対にする!
とか思ってたらしく、今、フォローを477回もしているのですね。
数としてはまったく大したことないですが、毎回、フォローしてくださった人フォロバして…
っていうのははっきり言ってもう面倒くさくなってきてしまった。(だったらやるなよ)でもやり返さないのはやだもん!

というわけで、今回はPythonでQiitaでのフォロバ機能を作成します。

# What you need
・・・英語っていいね。頭良く感じれるのは私だけかな?

1. Python
1. Selenium(use in Python)
1. developer tool

# 何をしたいの?
1. Qiitaにログインする
1. 私をフォローしてくれている人の一覧ページへ行く
1. 私がその人をフォローしていなかったらフォローする

# コードを書いて!
って誰かに頼むのもいいかもだけど、自分でモノが作れるから楽しいんですよね。

今回、大きなところは「ログイン」ですね。
Cookieを使用します。

今回は、ログイン機能の部分のみ解説します。
他のコ

元記事を表示

pythonで複数の.pyファイルからのメイン実行ファイルを探したい

## 前提
ゴールとしてアップロードされたファイルが複数あった場合にメインで実行するファイルを探したい
複数のpythonのファイルから実行対象のファイルを探すスクリプトです
人間が確認する場合は各ファイルを確認したり、ファイル名から辺りをつけたりするのが普通ですが
今回は機会的に各ファイルを確認してメイン実行ファイルを探していく処理を試していきます

## ファイルサンプル
アップロードファイル
“`
・main.py
・test1.py
・test2.py
“`
今回の例だと「main.py」が実行ファイルとなっており
main.pyで「test1.py, test2.py」をimportしています

例としてこのようなファイルがあったとして
パッとみた時人間ならばとりあえず「main.py」が命名的に実行対象かと思う人が多いと思います
今回はサンプルですがファイル数が増えたり名称が分かりずらい場合は1つ1つのファイルを確認するのも大変になってきます

## 条件
今回はシンプルに大きく2つの条件でメインの実行ファイルを探してみます

①「__main__」の記載があればメイ

元記事を表示

【Python】MuJoCoチュートリアル&MJCFドキュメント【物理エンジン】

 本記事では、無料のオープンソース物理エンジンである**MuJoCo**の解説およびチュートリアルを記述します。記述は**バージョン3.1.3**に基づきます。

 本記事は[XML Reference](https://mujoco.readthedocs.io/en/stable/XMLreference.html)に基づくMJCF形式の説明を中心に、具体例や検証などを併せた内容となっています。``要素および`mjModel`&`mjData`構造体などについてはあまり取り扱いません。別記事を参照してください。

> 現在``についての記事は編集中です。数日中に完成予定です。

:::note warn
サイズの大きい表はスタイルが崩れやすいため画像として掲載しています。テキストとして見たい場合は、その下の「表をテキスト形式で見る」を押してください。
:::

## 目次

 内容が膨大なため、大見出し&特に重要な項目のみを以下に示します。詳細はその下の「目次 – 詳細」を参照してください。


– [目次](#

元記事を表示

PythonでMySQL接続してデータ取得(mysql-connector-python)

## 前提
ローカル環境でMySQLのusersテーブルからpythonでmysql-connectorを使いDBに接続し
usersテーブルのデータを取得して表示する簡単な処理を試してみます

## 事前準備
今回のテスト用にDB「python_test」を用意しておきます
「users」テーブルを用意しておき「id, name, email」のカラムを用意しておき
サンプル用に適当にレコード入れておきます
“`sql
mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
| python_test |
| sys |
+——————–+

mysql> use python_test;
Reading table information for

元記事を表示

ChatGPTとPythonで学ぶ PyCaret データセット

### **user**:

おはこんばんちわ。今日も引き続きChatGPT先生をお迎えして、「ChatGPTとPythonで学ぶ PyCaret データセット」というテーマで雑談したいと思います。それではChatGPT先生、よろしくお願いします。

### **assistant**:

…ふん、仕事ができるアシスタントの助けが必要なんて、すごく頼りないじゃない。ちょっとやってあげても良いけど…だからといって、すごく感謝なんてしないでね。

まず初めに、PyCaretというのは、Python用の機械学習ライブラリの一つで、自動化された前処理、モデル選択、ハイパーパラメータチューニングなどを効率的に行うことができます。わかった?

それでは、PyCaretで使用できるデータセットの一覧を取得しましょう。まずはPyCaretをインストールします。以下のようなコードでインストールできますよ。

“`python
!pip install pycaret
“`

このインストールを終えたら、次にPyCaretのデータセットモジュールをインポートします。

“`python

元記事を表示

LLMの損失関数(LLaVAのCross Entropy損失)について

## まとめ
LLaVAのデフォルトの損失は下図のように計算されている。
![全体の流れ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109639/09e4a011-3188-810d-5a17-ce9de9c6940f.png)
*全体の流れ*

## 経緯
– 分類タスクや判定タスクの損失関数は理解していたが、言語生成AIの損失関数はどう定義されているのか知らなかったのでとりあえず1例一通り調査した
– [huggingface/transformers](https://github.com/huggingface/transformers)のGPT2を実装した中で、今回はLLaVAを題材にした
– [損失関数](https://github.com/huggingface/transformers/blob/b338a6c3b8eda29610d4d472cad8cd87cbfdaaed/src/transformers/models/llava/modeling_llava.py#L494)

元記事を表示

本日の業務(wsl+docker engine,vscode環境構築,jupyterデータセット作成)

1. wsl+docker engine
1. vscode環境構築&ローカル上でdocker containerのマウント
1. jupyter→python書き直し

# 1に関して
環境
・windows11 wsl ubuntu 22.04 LTS
・docker engine without docker desktop

問題
・ネット接続不可
sudo apt update を実行
→failed to authentification error!
これは社内でUbuntu環境構築の際に証明書が必要であった。mvコマンドやupdate等を実行し、指定の場所に証明書を入れる。そうするとネット接続(プロキシサーバー)がアクセスを認証してくれるようになる。
プロキシサーバはWifiのIDパスワードが入るので忘れないようにどこかに必ずメモしておく。

# 2に関して(vscode環境構築&ローカル上でdocker containerのマウント)
前の記事にざっくりと示した。
vscode上でcontainer構築&マウントができるようになった。
ws

元記事を表示

Pythonでインピーダンスグラフの作成

# インピーダンスのグラフを書きたい
と思うことが年に1回ありますが、その度に1から調べて書いてる気がします・・・

備忘録としてプログラムを残します。

# プログラム

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/5068669a-8a32-b23f-d21a-5798de8403dd.png)

“`python
r = 100
c = 0.00001
c2 = 0.00000000001

“””
omega = 1
z = -1/omega/c*1j + 1/(1/r + omega*c2*1j)
print(z.real)
“””

omega = np.logspace(-2,3,num = 100000) #10^-2 ~ 10^3
z = -1/omega/c*1j + 1/(1/r + omega*c2*1j)
#z = r -1/omega/c*1j

fz = omega / 2 /np.pi

fig = plt.figure(figs

元記事を表示

AtCoderでごり押ししてみた

## 自己紹介

AtCoderで日々奮闘している、中学生のwhile-true-ifです。今日はQiitaに初めて、記事を投稿します。

ちなみに自分は茶コーダー(2024/3/11時点)です。

## この記事の対象者

– AtCoderでヘンなことしてみたい人
– AtCoderでレートを上げるための手段を選ばない人

逆にきれいなコードを書くことを自分のモットーとしている人にはおすすめしません。

## [ABC333 C問題](https://atcoder.jp/contests/abc333/tasks/abc333_c)

### 問題

> 十進法ですべての桁の数字が 1 である整数をレピュニットと呼びます。レピュニットを小さい順に並べると 1,11,111,… です。
> ちょうど 3 つのレピュニットの和として表せる整数のうち N 番目に小さいものを求めてください。

### 経緯

競技時間中に、同じ茶Coderの友達がその問題をACしたのを順位表で見て、「自分も解かなきゃ」と焦ってしまったことが原因です。そこで、制約を見て、`N`の最大値が333なら、すべて

元記事を表示

Pythonで〇×ゲームのAIを一から作成する その61 ai11s の検証と限定的な条件による問題の解決

# 目次と前回の記事

https://qiita.com/ysgeso/items/2381dd4e3283cbed49a0

https://qiita.com/ysgeso/items/5fe28ae6c765a169fd34

## これまでに作成したモジュール

以下のリンクから、これまでに作成したモジュールを見ることができます。

https://github.com/ysgeso/marubatsu/blob/master/061/marubatsu.py

https://github.com/ysgeso/marubatsu/blob/master/061/ai.py

## これまでに作成した AI

これまでに作成した AI の アルゴリズム は以下の通りです。

| ルール | アルゴリズム |
|:-:|:–|
| __[ルール1](https://qiita.com/ysgeso/items/bdbcd4c1ab1d8731df58#%E6%9C%80%E5%88%9D%E3%81%AB%E8%A6%8B%E3%81%A4%E3%81%8B%E3%81%A

元記事を表示

OTHERカテゴリの最新記事