From: Thadeus B. <tha...@th...> - 2009-09-24 04:21:18
|
Hey check out my blog post, it explains it all http://blog.thadeusb.com/2009/04/15/pygame-font-and-py2exe/ -Thadeus On Wed, Sep 16, 2009 at 1:20 PM, Kris Schnee <ks...@xe...> wrote: > Hello. I've built EXEs using Py2EXE before, but recently started doing it > again after a year or so off, using the latest versions of Python, Pygame, > and Py2EXE. And now I can't seem to make it work. Has anyone successfully > used Pygame with Py2EXE, and what am I doing wrong? > > I've got WinXP, and freshly installed Python 2.6 and matching versions of > Pygame and Py2EXE. I wrote a minimal Python program and setup.py script > (listed at bottom). I used the command line "python setup.py py2exe". An > EXE got built. It worked. > > I wrote a minimal Pygame program that opens an SDL window and draws some > text and dots. I tried building an EXE. The EXE crashed and referenced line > 3 (pygame.font.init()), saying, "NotImplemented Error: font module not > available (ImportError: DLL load failed: The specified module could not be > found.)" > > I tried copying every relevant DLL: "copy > C:\python26\lib\site-packages\pygame\*.dll C:\python26\dist". (Advice seen > elsewhere said that the needed one is SDL_ttf.dll, but that wasn't enough.) > Result: "Fatal Python error: (pygame parachute) Segmentation Fault". That's > actually progress, as merely copying the one dll didn't get me even that > far. This program works fine in IDLE, so the code's okay. > > So, I'm getting frustrated. I can't even install Python 2.3 now (a version > I think I'd used successfully in the past) because the Windows installer is > now missing and the Python source version crashes. I've also tried the > alternate program "bbfreeze", which crashed in multiple ways, and have > tried Py2EXE with the sample script "pygame2exe" seen at > <http://www.pygame.org/wiki/Pygame2exe?parent=CookBook>. Also I've tried > copying "freesansbold.ttf" into the dist directory, which used to fix a > similar mysterious error. > > What do I need to do to make my program work as an EXE? I'd appreciate > help. > > Kris > > ------Details------ > Program "basic_test.py" (WORKS): > <code> > print "Here you can see a nice ice key which you can have for free." > </code> > > Program "pygame_test.py" (DOESN'T WORK AS EXE): > <code> > import pygame > pygame.init() > pygame.font.init() > screen = pygame.display.set_mode((640,480)) > screen.fill((0,0,128)) > f = pygame.font.Font(None,24) > t = f.render("Here you can see a nice ice key which you can have for > free.",1,(255,255,255)) > screen.blit(t,(10,50)) > screen.set_at((10,100),(255,255,0)) > screen.set_at((110,100),(255,255,0)) > screen.set_at((60,100),(255,255,0)) > pygame.display.update() > </code> > > Program "setup.py" (amended w/appropriate program name): > <code> > from distutils.core import setup > import py2exe > setup(console=["basic_test.py"]) > ## Also tried "windows=..." > ## Also tried > > "setup(console=["pygame_test.py"],options={"py2exe":{"includes":["pygame"]}})", > also w/"pygame.font" > </code> > > Exact error on running the EXE: > <code> > pygame_test:3: RuntimeWarning: use font: MemoryLoadLibrary failed loading > pygame\font.pyd > (ImportError: MemoryLoadLibrary failed loading pygame\font.pyd) > Traceback (most recent call last): > File "pygame_test.py", line 3, in <module> > File "pygame\__init__.pyo", line 70, in __getattr__ > NotImplementedError: font module not available > (ImportError: MemoryLoadLibrary failed loading pygame\font.pyd) > </code> > > > > ------------------------------------------------------------------------------ > Come build with us! The BlackBerry® Developer Conference in SF, CA > is the only developer event you need to attend this year. Jumpstart your > developing skills, take BlackBerry mobile applications to market and stay > ahead of the curve. Join us from November 9-12, 2009. Register now! > http://p.sf.net/sfu/devconf > _______________________________________________ > Py2exe-users mailing list > Py2...@li... > https://lists.sourceforge.net/lists/listinfo/py2exe-users > |