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() を書き忘れて表示されないのを、このエラーの所為だと勘違いして書き直してたんだけどね('`)