LINUX上のスキンチェックエラー

Issue #1098 resolved
DrBandal created an issue

pygame 2.5.1 (SDL 2.28.2, Python 3.10.12)
Hello from the pygame community. https://www.pygame.org/contribute.html
Traceback (most recent call last):
File "/home/bandal/cardwirthpy-reboot/cw/setting.py", line 1229, in init_skin
data = self._update_skin(path)
File "/home/bandal/cardwirthpy-reboot/cw/setting.py", line 1553, in _update_skin
cw.util.release_mutex()
File "/home/bandal/cardwirthpy-reboot/cw/util.py", line 2591, in acquire
return f(*args, **kwargs)
File "/home/bandal/cardwirthpy-reboot/cw/util.py", line 5349, in release_mutex
assert isinstance(fio, io.FileIO)
AssertionError

Traceback (most recent call last):
File "/home/bandal/cardwirthpy-reboot/cw/setting.py", line 1229, in init_skin
data = self._update_skin(path)
File "/home/bandal/cardwirthpy-reboot/cw/setting.py", line 1553, in _update_skin
cw.util.release_mutex()
File "/home/bandal/cardwirthpy-reboot/cw/util.py", line 2591, in acquire
return f(*args, **kwargs)
File "/home/bandal/cardwirthpy-reboot/cw/util.py", line 5349, in release_mutex
assert isinstance(fio, io.FileIO)
AssertionError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/bandal/cardwirthpy-reboot/cw/frame.py", line 1713, in OnInit
frame = Frame(self)
File "/home/bandal/cardwirthpy-reboot/cw/frame.py", line 42, in init
self._setting.init_settings()
File "/home/bandal/cardwirthpy-reboot/cw/setting.py", line 1156, in init_settings
self.init_skin(basedata=basedata)
File "/home/bandal/cardwirthpy-reboot/cw/setting.py", line 1238, in init_skin
raise Exception()
Exception

ーーーーー

Linux Mint 21.2 Victoria Xfce 4.18.1の環境で、スキンチェックエラーとともに以上のメッセージが出ます。

Windows版のデータフォルダを入れてみたり、メッセージ内のPyファイルに実行権限を与えたりもしたのですが、もう私の方から試す術が思いつきません、一目通していただけるととても助かります。

Comments (7)

  1. k4nagatsuki repo owner

    ご報告ありがとうございます。

    現状、ライブラリのバージョンの都合でLinuxデスクトップ上での実行はかなり難しくなっていると思われます。なんらかのWINE実行環境が用意できるならそれを使用した方がいいかもしれません。

    このケースについては、おそらくpygameが2系(2.5.1)なのが原因だと思われます。pygameが2系になると共に1.9.6までできていた他のGUIツールキットとの連携ができなくなっていたため(中身がSDL2になったためと思われる)、CWPyが動かなくなりました。ですので動かすにはpygameを1.9.6にし、周囲の環境もそれに合わせるという事になるかと思うのですが、いかんせん何年も前の環境なので難しいように思われます。

  2. BlinkOpera

    以下の環境でも再現しました。

    pygame 2.3.0 (SDL 2.24.2, Python 3.10.12)

    Ubuntu 22.04.3 LTS

    commit 928bd27de3129722b3463d519c7c00230c02dedf

    ブランチ master

    報告された、以下のTracebackに関して、

    pygame 2.5.1 (SDL 2.28.2, Python 3.10.12)
    Hello from the pygame community. https://www.pygame.org/contribute.html
    Traceback (most recent call last):
    File "/home/bandal/cardwirthpy-reboot/cw/setting.py", line 1229, in init_skin
    data = self._update_skin(path)
    File "/home/bandal/cardwirthpy-reboot/cw/setting.py", line 1553, in _update_skin
    cw.util.release_mutex()
    File "/home/bandal/cardwirthpy-reboot/cw/util.py", line 2591, in acquire
    return f(*args, **kwargs)
    File "/home/bandal/cardwirthpy-reboot/cw/util.py", line 5349, in release_mutex
    assert isinstance(fio, io.FileIO)
    AssertionError

    util.py#lines-5349 のfioは、期待したio.FileIOではなく、_io.BufferedWriterでした。

    上記、fioは util.py#lines-5292 で、生成されます。

    open()の戻り値型は、modeとbufferingに依拠するようです。

  3. Log in to comment