pygame で遊んでたら sysfont.py でエラーが出た。

シェアする

pygame をやろうとして python でゲームを作りますが何か?のページを参考にテキストを書き出したら、動くには動くんだけど以下のエラーが出た。なんだかむかつくので適当に対応。

/usr/lib/python2.6/dist-packages/pygame/sysfont.py:146: DeprecationWarning: os.popen3 is deprecated. Use the subprocess module.
flin, flout, flerr = os.popen3('fc-list : file family style')

フォントのリストを flout に書き出してるんだけど、 os.popen3 が非推奨とされている様だ。fontなんてそうそう増えないので予めfontの一覧を作ってそれを読み込む事にする。

>>> fw = open('sysfont.list')
>>> flin, flout, flerr = os.popen3('fc-list: file family style')
>>> for i in flout:
>>>     fw.write(i)

これでフォントのリストができる。
あとは sysfont.py を書き換える。

$ sudo /usr/lib/python2.6/dist-packages/pygame/sysfont.py

def initsysfonts_unix():
    fonts = {}
    #以下4行コメントアウト
    #try:
    #    flin, flout, flerr = os.popen3('fc-list : file family style')
    #except:
    #    return fonts

    #以下2行追加 sysfont.list の場所は適当に。
    f = open('/usr/lib/python2.6/dist-packages/pygame/sysfont.list')
    flout = f.readlines()

これでエラーは出なくなる。

ほんとは pygame.display.update() を書き忘れて表示されないのを、このエラーの所為だと勘違いして書き直してたんだけどね('`)

Sponsored Link

シェアする

フォローする