PokeControllerとMacとtkinter
普段WindowsでPokeControllerを使って居ますが出先に持っていくパソコンがMacbookPro(M1)のため、そっちでもPokeControllerの環境構築をしようとしたんですが、問題が発生してかなり時間を取られたので半分愚痴の日記です。
PokeControllerはGUIを表示するのにPythonのtkinterというライブラリを使用しているのですが、これがMacと相性が悪いようで起動はできるけれどマウスクリックをするとフリーズするという状態になりました。
対応としては教えてもらった情報とTwitterや自動化鯖の情報をもとに上の画像の範囲をコメントアウトすると動くようになるとの事だったので試して見ましたが、解決しませんでした。
紆余曲折あって4時間ほど格闘しましたが、結果としてMacに入っていたPythonとtkinterのバージョンを変更したところなんとか動くようになりました。ただし動作はかなり重かったです。参考までにPythonを3.7.10→3.8に、tkinterを8.6.12→8.6.10に変更しました。コレが正しいのかどうかは全くわかりません。結果論です。
今後制作するプログラムもtkinterの使用を想定していましたが、PokeControllerに限らず他の色々のテストプログラムもMac上のVSCではうまく動かない事が多々あり困ってます。wxPythonとかもkindle unlimitedで読める参考書で見てみましたが、解説してるサイトなんかがtkinterに比べるとはるかに少なくて勉強のハードルが高いなあって事で諦めて当分はtkinter勉強して行こうと思います。かわりのGUI用ライブラリのおすすめがあれば教えて下さい。
ちなみにですが、その後キャプチャデバイスのelegato HD60SがMacで使えないという問題にも遭遇しました。elegato純正アプリでは問題なく使用できるのですが、OBSやopenCVでの画像の読み込みが出来ない状態でした。調べるとどうやらelegatoのデバイスのハードウェアエンコードがMacと相性が悪いらしく、ソフトウェアエンコードに切り替えた上で出力解像度も変えると認識するらしいんですが、力尽きて未解決のままです。毎回切り替えるのも面倒くさいんで実績のある1000円キャプボをAmazonでポチりました。こちらも解決できたら備忘録としてまとめます(まとめるとは言っていない
結論:大人しくWindows使っとけ
2023/04/10追記:
最新版のPython + tkinterでは一部Windowsと表示の差異はありますが問題なくGUIが表示出来ることを確認できたので面倒くさいことをしなくてもよくなりました。神。
2023/04/18追記:
やっぱり一部条件下でCombobox(プルダウンメニュー)操作時にフリーズする減少を確認。完全では無い模様。