メモと備忘録

メモや備忘録を残します

pyxel.text()で全角文字が表示されない

pyxel.text()で全角文字が表示されなかったので、解決法

pyxel.text(1,1,"日本語",7) # 表示されない

サンプルコードをコピーする

pyxel copy_examples

コピーしたサンプルから、以下のファイルを自分のプログラム配下に置く

pyxel_examples\assets\umplus_j10r.bdf
pyxel_examples\assets\umplus_j12r.bdf

プログラムに以下を記述

# ビットマップフォント
umplus10 = pyxel.Font("umplus_j10r.bdf")
umplus12 = pyxel.Font("umplus_j12r.bdf")

全角が表示される

# 引数でフォントを指定
pyxel.text(1,1,"日本語",7,umplus10)

【Pyxel】Windowsで環境構築

Windows10でPyxelの環境を構築します。
意外とすんなりいきませんでした。。。


Windows PoweShellを起動する。


Pythonのバージョンを確認。3.8以上ならOK。

python --version
Python 3.7.2


バージョンが古いので、最新のバージョンをインストール。
https://www.python.org/downloads/
※Add Python 3.10 to PATHにチェックを入れる


インストールされているPythonを確認。

py --list
#-V:3.13 * Python 3.13 (64-bit)
#-V:3.7-32 Python 3.7 (32-bit)

*が付いているバージョンがデフォルトで使用される


pyxelをインストールする。

pip install -U pyxel
#You are using pip version 18.1, however version 24.0 is available.
#You should consider upgrading via the 'python -m pip install --upgrade pip' command.

⇒だがエラーが出る


エラー文に従い python -m pip install --upgrade pip を実行する。

python -m pip install --upgrade pip


再度pyxelをインストール。

pip install -U pyxel

⇒成功


カレントディレクトリに Pyxel のサンプルコードをコピーする。

pyxel copy_examples


サンプルコードが見当たらない。カレントディレクトリとは別の場所にコピーされていた。
カレントディレクトリ:C:\WINDOWS\system32
コピーされていた場所:C:\Windows\SysWOW64


サンプルを実行してみる。

pyxel run 01_hello_pyxel.py
pyxel play 30sec_of_daylight.pyxapp


次にエディタを起動してみる。

pyxel edit "保存するファイルパス"

⇒エラーが出る


Pythonのパスを確認。

py -0p

⇒Scriptsフォルダにpyxel.exeが存在していない。


コマンドによって表示されるバージョンが違っている。

py -V
Python 3.13.0

Pythonランチャーに紐付いている。ランチャーは複数のバージョンのなかから、一番新しいバージョンで実行してくれる。

python --version
Python 3.7.2

⇒システム環境変数に登録されているPythonが実行される。

例)pipコマンドなども注意

pip install pypdf2 #Pytyon 3.13.0にインストールされる
py -m pip install pypdf2 #Python 3.7.2にインストールされる


システム環境変数Python 3.13.0に設定する。


最新バージョンに紐付いた事を確認。

python --version
Python 3.13.0
py -V
Python 3.13.0


再度pyxelをインストール。

pip install -U pyxel

Python 3.13.0のScriptsフォルダにpyxel.exeが存在する事を確認


pyxeleditorを起動してみる。

pyxel edit "保存するファイルパス"

⇒成功

【PostgreSQL】サーバーで実行中のクエリを調べる

バックエンドで長時間実行されているSQLがないかを調べたいとき。

SELECT query_start, query
FROM pg_stat_activity
WHERE state = 'active'
;

query_start:SQLが実行された時間
query:実行中のSQL


こちらの記事に詳しく書かれていました。
【PostgreSQL】pg_stat_activityを理解する #PostgreSQL - Qiita

【PostgreSQL】インデックスのあれこれ

環境:PostgreSQL

インデックスを作成

CREATE INDEX [インデックス名] ON [テーブル名] ([カラム名]);

インデックスを削除

DROP INDEX [スキーマ名].[インデックス名];

インデックスを確認

SELECT *
FROM pg_indexes
WHERE tablename = '[テーブル名]'
ORDER BY indexname;


以下のような場合

スキーマ名:test
テーブル名:user
カラム名:id
インデックス名:i_id

例)

CREATE INDEX i_id ON user (id);

DROP INDEX test.i_id;

SELECT *
FROM pg_indexes
WHERE tablename = 'user'
ORDER BY indexname;

【SQL】

日付から年や月だけを抜き取りたい場合
PostgreSQL

2024/4/1に実行

SELECT
EXTRACT(YEAR FROM NOW()) --年
,EXTRACT(MONTH FROM NOW()) --月
,EXTRACT(DAY FROM NOW()) --日

結果

2024.0 --年
4.0 --月
14.0 --日


参考
www.postgresql.jp

【GAS】GROPU BYのエラー

=QUERY(A:I, "SELECT B WHERE B IS NOT NULL GROUP BY B",1)

としたところ、以下のエラーが表示された。

 関数 QUERY のパラメータ 2 のクエリ文字列を解析できません。CANNOT_GROUP_WITHOUT_AGG

GROUP BYを使用する場合は、SELECTに集約関数を含む必要がある。
(COUNT、MAX、MINなど)