1

我在安装文件中编写了以下代码,并在默认文件夹中包含了 sdl_ttf.dll"、"SDL.dll。但是,它显示一条错误消息:

NotImplementedError:font module not available
<Import error: DLL load failed:can't find assigned module>

编码

from distutils.core import setup

import py2exe,sys,os
import pygame

setup(console=['blackjack.py'])

origIsSystemDLL = py2exe.build_exe.isSystemDLL
def isSystemDLL(pathname):
       if os.path.basename(pathname).lower() in ["sdl_ttf.dll", "SDL.dll"]:
               return 0
       return origIsSystemDLL(pathname)
py2exe.build_exe.isSystemDLL = isSystemDLL

pygamedir = os.path.split(pygame.base.__file__)[0]
os.path.join(pygamedir, pygame.font.get_default_font()),
os.path.join(pygamedir, 'SDL.dll'),
os.path.join(pygamedir, 'SDL_ttf.dll')

有什么不对?

4

1 回答 1

0

你的支票

if os.path.basename(pathname).lower() in ["sdl_ttf.dll", "SDL.dll"]:

将不起作用,因为您正在调用lower()文件名,但使用SDL.dll而不是sdl.dll,因此 py2exe 将不包含 sdl 库。

您也可以尝试使用pygame wiki 中的脚本。

于 2012-07-24T06:35:49.227 回答