Python と Windows の地雷
複数プロジェクトで踏んだ、Windows 由来の罠。
- ファイル入出力に
encoding="utf-8"を明示:省略すると Windows 既定が cp932 になり、日本語を含む JSON/テキストでUnicodeDecodeError。読み書き両方で指定する(gemini-rag)。 SetForegroundWindowは他プロセスの窓を前面化できない:OS レベルの制限で、別アプリのウィンドウを プログラムからアクティブにするのは基本拒否される。AttachThreadInputでスレッドをアタッチする回避策は あるが、他ウィンドウへの意図しない副作用リスクがあり安易に使えない(mouse-release の F8 再拘束が 不安定なのはこれが根本原因・未解決)。
出典:gemini-rag(encoding)、mouse-release(SetForegroundWindow)