Python関連のことを調べてみた2022年10月28日

Python関連のことを調べてみた2022年10月28日

【完全入門】Google Ads APIにハマりまくったのでめちゃくちゃ丁寧に説明する

# はじめに
このページに来た方はこれからGoogle Ads APIを始めようと思っている人かGoogle Ads APIを始めようとしたらハマってしまった人でしょう。
[公式リファレンス](https://developers.google.com/google-ads/api/docs/start)はあるにはありますが、**死ぬほど**わかりづらいので注意してください。
めちゃくちゃ詰まった挙句、光明を見出した筆者が懇切丁寧に説明するので安心してください。

# アカウントについて
ここが一番の難所といっても過言ではありません。
非常に複雑怪奇な構造をしていて、かつ最重要な箇所なのにちゃんと説明してくれているサイトはほぼ皆無。世界の七不思議にいれてほしいくらいには謎です。
もちろん公式リファレンスは例のごとくちゃんと教えてくれません。一応書いてあるのでしょうが、恐らく常人には読解不可能。

閑話休題、以下が私の分析結果です。
“`
├── 本番用アカウント # !注意 本番用アカウント≠テストには不要
│   └── MCCアカウント # マネージャーアカウント
└── テスト

元記事を表示

M1 Mac (Apple Silicon, M1 PRO, 2021) にPandasGUIを導入

# はじめに
M1Macで,pandasguiを普通に“pip install pandasgui“で入れようとすると,PyQt5(依存関係の描画ライブラリ)のインストールでエラーが吐かれる.
PyQt5のインストール方法を調べたところ,brewでインストールして参照すると上手くいくようなのでそのように導入.

なお,anaconda環境での実施とします.

# PyQt5のインストール
以下を参照ください.

https://zenn.dev/eisukeito/articles/530313bdb4d42a#gui%E9%96%8B%E7%99%BA%E7%94%A8%E3%81%AEqt5%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

手順は至ってシンプルで,
1. brewでインストール
1. インストールしたsite-packagesをanaconda環境のsite-packagesにリンクを貼る
以上です.
この際,PyQt5のPythonバージョンに合わせて,適宜conda環境を作成しま

元記事を表示

初心者によるatcoder(1回目):001 – Print 5+N

10/28の演習記録です。
ご意見やいいねをいただけると喜びます。

【演習問題】
https://atcoder.jp/contests/math-and-algorithm/tasks/math_and_algorithm_a

【問題文】
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2950639/a7addd86-2dc0-d96d-3c93-6e76c7a7013c.png)

【ソースコード】
“`
apple = 5

mikan = input()
mikan_int = int(mikan)
#input()はstr型のためint型に変換した。

if 1 <= mikan_int <= 100: print(apple + mikan_int) else: print("不正な値です") ``` 【結果】 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/

元記事を表示

WordPress REST APIをDockerでサクッとテストする

ニィロウで本天井ぶちかましたので初投稿です。

## 事の発端
自動作成した記事をWordPressに下書き投稿する機能を業務で開発しました。
(一から十まで自動作成するのではなく、後から人の手が入ることを前提としたシステムです。)

テストするために~~ぶっ壊してもいい~~テスト用のWordPressが欲しいんですが、WordPressって用意するの面倒臭そうじゃないですか?

~定例MTGにて~
僕「開発用のWordPress貸してもらえないかなぁー(怠惰)」
弊社のスゥパエンジニィア「コンテナでテストできませんか?」
僕「できます(反射)」

やっべ。

## ゴール
![image-20221021101342052.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1065089/33b934d6-449f-77a8-75a8-11af87b6965b.png)
栓抜きにも見えますね、このピクトグラム。

## コンテナ作る
### Python側

Dockerfileで作りました。
(OS

元記事を表示

pyenv install –listでPython3.10以降が出てこない

# 起きた症状
pyenvを使ってPython3.10以降を利用したくなったので、pyenv install –list を実行したが、3.10-devまでしか出てこない。

brew pyenv uninstall
brew install pyenv 

をやってもダメだった

# 結論
brew以外で別に古いpyenvが存在しており、それが有効だったためbrew経由でインストールしても、そのpyenvは機能せずだった。

# 環境
– M1 MacbookPro
– OS:13.0(22A380)

# やったこと
– 古いpyenvのuninstall
– 参考:https://qiita.com/yasudadesu/items/1177aa93229e7c4b7a45
– brew側のpyenvも念のためuninstall
– 再度brew経由でinstall
– PATHを通す
– 参考:https://zenn.dev/unsoluble_sugar/articles/283ebf698c307c
– 必要な前提環境の再インストール
– 参考

元記事を表示

python configparser

## INIファイル読み込み

“`ini
[Server1]
IP=192.168.0.123|192.168.0.456
[Server2]
IP=192.168.0.78|192.168.0.90

“`

“`py
import configparser

# 設定ファイルのパス
CONF_FILEPATH = ‘IPInfo.ini’
config = configparser.ConfigParser()
config.read(CONF_FILEPATH, ‘UTF-8’)

# 書き方1
config_svr1 = config[‘Server1’]
svr1_IP = config_svr1[‘IP’]

”’
# 書き方2
svr1_IP = config[‘Server1’][‘IP’]
”’

print(“svr1_IP: ” + svr1_IP)

“`
参考文献

http://trelab.info/python/python-configparser%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E8%A8%A

元記事を表示

【VSCode】’code .’コマンドでディレクトリが開けないときの対処法

入力するコマンド:
“`
cd ****(ファイルパス)
code .
“`

cd **** 指定のディレクトリへ移動
code . 指定したディレクトリをVSCodeで立ち上げる

通常、↑これでうまくいくはずが、私の場合
“`
/usr/local/bin/code: line 6: python: command not found
/usr/local/bin/code: line 10: ./MacOS/Electron: No such file or directory
“`
というエラーが出て、ディレクトリが立ち上がらない。

まず試したこと

使いたいシェルに’code’コマンドがインストールされているか確認

VSCodeのメニュー>表示>コマンドパレット>”shell”と入力>「シェル コマンド:PATH内に’code’コマンドをインストールします」をクリック。
![スクリーンショット 2022-10-28 3.01.14.png](https://qiita-image-store.s3.ap-northeast-1.a

元記事を表示

マスク付きテンプレートマッチングでスプラトゥーン3のイカランプを認識させてみた

openCVのcv2.matchTemplate()によるテンプレートマッチングでは、アルファ値が使えないことで有名ですが、**実はマスク付きテンプレートマッチングで透過処理もどき可能です。**

公式ドキュメント:https://docs.opencv.org/4.x/d4/dc6/tutorial_py_template_matching.html

オライリー・ジャパンから出版されてるあの「詳解OpenCV 3」にもこのことは書かれて無かったので知らなかった・・・?

かなり便利なのですが、よくあるopenCVの基礎だけを簡単に解説した記事などでは取り上げられてないので本記事でご紹介したいと思います。

cv2.matchTemplate()にテンプレート画像を同じサイズのマスクを渡すことで、「透明なピクセル」のような扱いが可能なようです。アルファ値ではないため半透明を取り扱うことはできませんが、マスクの取り方としきい値である程度調整可能かと思います。
マスクを掛けることで自由な形状のテンプレート画像でマッチングさせることができます。

![icons.png](https://

元記事を表示

pythonで一つのバイナリにsigned unsigned型を混ぜて入れたい

どうすりゃいいのさ…

# こまった
pythonで値をバイナリにまとめて外部に送信する時に、符号付きの整数(unsigned short)と符号なし整数(signed short)をまぜる必要が出てきました。
前提として、pythonの値は型を持たないという特徴があり、そこが悩みどころです。

C+であれば型の情報を持っているので共用体unionを使えば簡単に解決しますし、またpythonでもデータを取り出す分には、struct.unpackで型の指定を分けて配列を作れば大丈夫です。
pythonで型やバイナリを扱う際にも、numpyを使えばなんとかなります。
ただデータをバイナリに入れる際に、pythonは補数がどこにあるのかよくわからず、変換で少し悩みます。
何か方法がありそうですが、調べ方がわかりません。

元記事を表示

【Pytest】faulthandlerを無効化する

# はじめに

`pytest`を触っていると、下記のような `Windows fatal exception`が大量に表示されたことはありませんか?

“`sh
Windows fatal exception: code 0x80010108

Thread 0x0000625c (most recent call first):
File “C:\Users\Hoge\AppData\Roaming\Python\Python38\site-packages\comtypes\__init__.py”, line 185 in shutdown
Windows fatal exception: code 0x80010108

Thread 0x0000625c (most recent call first):
File “C:\Users\Hoge\AppData\Roaming\Python\Python38\site-packages\comtypes\__init__.py”, line 185 in shutdown
“`

この例外はOSSライブラリに依存

元記事を表示

2軸を持つグラフ描画

## 目的
pythonで2軸を持つグラフの表示方法について確かめる

## 行う事
X軸を共有して2つのY軸を持つ図を作成するとき片方は、x軸が同じ連続値でなくても、
期待通り表示されるかどうか確認する。

##input file
~~~
test1.csv
ID value
0 1 1
1 2 2
2 3 3
3 4 4
4 5 5
5 6 6
6 7 7
7 8 8
8 9 9
9 10 10
test2.csv
ID value
0 1 10
1 5 5
2 10 1
~~~
## コード
~~~
import matplotlib.pyplot as plt
import pandas as pd

test1 = pd.read_csv(‘test1.csv’)
test2 = pd.read_csv(‘test2.csv’)
print(test1)
print(test2)

fi

元記事を表示

[備忘録]FastAPIのDetaにデプロイがうまくいかなかった

# 背景
作りたいものがあって、FastAPIを使ってみようと思ったときにドキュメント通りやってもうまくいかなかったので、同じつまずき方をした人のために備忘録を残そうと思いました。

# 実際に起きた問題
参考にしていたのは[こちら](https://fastapi.tiangolo.com/ja/deployment/deta/?h=deta)のドキュメントです。
CLIを入れて、detaが入っていることの確認、deta loginまではうまくいったのですが、deta newを実行すると、
![記事写真.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1350111/f11befab-9057-8888-45d8-9e60c458a9df.png)
明らかにドキュメントとは違う表記が出てきました。リンクにアクセスしても表示がされません。

# 問題の原因
ドキュメントに一番下のdependenciesに関する質問の回答があったので、それを試しましたが治らず一時保留し、再度エラーを見たときにここで出ている

元記事を表示

プログラミング学習参考サイト

https://qiita.com/hatai/items/34c91d4ee0b54bd7cb8b

https://zenn.dev/nameless_sn/articles/awesome_python_github_repo

https://zenn.dev/nameless_sn/articles/important_10_github_repositories

https://github.com/EbookFoundation/free-programming-books/blob/main/books/free-programming-books-ja.md#java

元記事を表示

RSA暗号を今更実装してみた

さっさと実装を見たい方は[こちら(Github)](https://github.com/CAB314/RSA-cryptosystem/blob/main/RSAmaker.ipynb)

こんにちは、キャベツです。
ふと、RSA暗号を実装してみたくなったので、やりました。

# RSA暗号って何?
公開鍵暗号の一種です
すでに解説をしている先人がたくさんいらっしゃいますが、軽く説明します

## 公開鍵暗号
平たくいえば、暗号化する手段と復号する手段が異なる手法です。
暗号を送る側は、誰でも手に入れることのできる公開鍵というものを用いて、元の文(平文)を暗号化します。
一方で、暗号を受け取った側は誰にも公開しない秘密鍵を用いて暗号文を複号します。

公開鍵暗号とは別の概念として、共通鍵暗号という概念があります。
その名の通り、暗号化と復号に用いる鍵が共通であり、両者が同じ鍵をもつ必要があります。
そのため、暗号文の送信のほか、鍵の送信という脆弱性が生まれます。
その点、公開鍵暗号は鍵を輸送しなくてもいいというメリットがあります。

## 仕組み

素数の性質を用います。
$p$を素

元記事を表示

Java頭からPython頭に切り替える(基礎編2)

[前回のつづき](https://qiita.com/kei3524848/items/53d84c375716b17aae3a)から
項目をうまくまとめようとしても、あんましうまくまとまらんかった(言い訳)

## 文法

* Java
* 文末は`;`で表現
* ブロックは`{}`で表現
* if, forなどで省略可能な書き方もあるけど、`{}`で囲ったほうがいいと言われている(1行分しか実行されないため思わぬバグを生む可能性あり)

* Python
* 文末は改行で表現
* `;`も許可されているが非推奨
* ブロックはインデントで表現
* ヘッダの部分(if, forなどの始まりの部分、クラス,関数定義)は`:`で区切る

## 変数
“`Java:Java
String msg = “Hello world”;
var msg2 = “Hello world”;
“`
“`Python:Python
msg = “Hello world”
“`
Pythonは接頭語の必要なし。

##

元記事を表示

Discordでbotを作る手順まとめる

# Discord でBotを作成する備忘録

::: note info
自分のために作ってるけど一応忘れないために書き残す用
曖昧な部分については詳しい人がいたら教えてください
2022/10/27 開発中なので作成しながら追加していく予定
:::

プロフィール

– 触ったことのある言語
– C++
– C#
– JavaScript
– Python
– プログラミング歴
– 大学4年間
– 社会人2年

[Discord Developers](https://discord.com/developers/)
[DiscordPy ドキュメント](https://discordpy.readthedocs.io/ja/latest/index.html)

## Pythonをインストール

WindowsのStoreにあった
公式サイトからでも良さそうだけどどう違うのかとかはわかんない

## Discord.pyをインストール
公式ドキュメ

元記事を表示

Mambaforgeでポータブル版のJupyterLabを作りChromeのアプリモードで起動する設定

# したこと
 「[minicondaのポータブルインストール](https://akirayou.net/wp/2020/miniconda%e3%81%ae%e3%83%9d%e3%83%bc%e3%82%bf%e3%83%96%e3%83%ab%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/)」を参考(ほとんどそのまま)に、Mambaforgeでポータブル版のJupyterLabを作った。
 また、「[JupyterLab3.0の起動ブラウザを指定する方法](https://qiita.com/matsxxx/items/10c93edab12a93604aab)」を参考に、JupyterLabをChromeのアプリモードで起動できるようにもしてみた。
# 環境設定用のバッチファイル
“`batch:environment_settings.bat
@echo off
cd /d %~dp0
SET MAMBA_PATH=%~dp0Mambaforge
SET PATH=%MAMBA_PATH%;%MAMBA_PAT

元記事を表示

python:unittestで例外をテストする

タイトル通りなのですが、pythonのunittestで例外が発生するケースのテストについて、サンプルと結果をメモします。

参照: https://docs.python.org/ja/3/library/unittest.html#unittest.TestCase.assertRaises

## テスト対象コード

良い題材とは言えませんが、シンプルに引数によって例外を変えています。

“`main.py
class MyException(Exception):
pass

def execute(value):
if value == 0:
raise MyException

if value == 1:
raise MyException(‘value is 1’)

raise Exception
“`

## テストコード

“`test_main.py
import unittest
from main import execute, MyException

class MainTests(

元記事を表示

GoogleCloudStorageにファイルを配置したことを契機にして、CloudFunctionを起動して、BigQueryにロードしてみた。

# はじめに
私はクラウドを使って仕事をすることが多いのですが、もっぱらAWSを使うことが多いです。
これはプライベートでもそうで、何かしらサービスを構築しようだの考えると1stChoiceはAWSになってしまいます。
この度GCPを使う機会に恵まれたので、GCPの使い所などや詰まったところ共有し、皆様の一助になればとのことで、今回こういった記事を書いてみることにします。

# GCSからCloudFunctionを動かしてみたい。
AWSの中でもS3とLambdaが好きで、この二つあれば大概のサービスなんとかなるやん!と常々思ってます。であればそれをGoogleCloudでも実現したいと思っていたので、このお題にしてみました。

# サービスの説明

## GCSとは
GCSはAWSでいうS3で、オブジェクトストレージのことをさします。
基本的な機能はS3と同じで、高い耐久性や可用性を保持しており、機能としてさまざまなStorageクラスで保存することで、ユーザにとって最適なコストパフォーマンスでオブジェクトを保存することができます。詳しい機能の説明は公式のhttps

元記事を表示

openpyxlで作ったExcelファイルがエラーになってしまう

# 環境

– Windows: `10 Education 21H2`
– Excel: `バージョン 2209`
– Python: `3.9.6` (pyenv + pipenv)
– Pipenv: `version 2021.11.23`
– openpyxl: `3.0.10`

# 問題

– スクレイピング結果をopenpyxlでExcelファイルとして出力した
– そのExcelファイルを開くときに `’<ファイル名>‘ の一部の内容に問題が見つかりました。可能な限り内容を回復しますか?ブックの発行元が信頼できる場合は、[はい] をクリックしてください。` というダイアログが開いてしまう
– ↓ 修正時のログ
– `削除されたレコード: /xl/worksheets/sheet1.xml パーツ内の数式`
– `削除されたレコード: /xl/worksheets/sheet4.xml パーツ内の数式`

元記事を表示

OTHERカテゴリの最新記事