PY2EXE - Strange Things a-Happenin | | |
Hello,
So I've been playing with Python and Pygame for a while and I decided
I wanted to make a real executable so I could send that stuff over to
my friends to show off my <sarcasm>maad skillz</sarcasm>.
Everything was going great I went and got all the newest software
(including Distutils and PY2EXE) and read the docs on making a setup
py.
Following is my setup.py: Sorry if It's a little long:
---------------------------------------------------------
#make standalone, needs at least pygame-1.5.3 and py2exe-0.3.1
from distutils.core import setup
import sys, os, pygame, shutil
import py2exe
#setup the project variables here.
#i can't claim these will cover all the cases
#you need, but they seem to work for all my
#projects, just change as neeeded.
script = "cards.py" #name of starting .PY
icon_file = "" #ICO file for the .EXE (not working well)
optimize = 2 #0, 1, or 2; like -O and -OO
dos_console = 0 #set to 0 for no dos shell when run
extra_data = ['readme.txt'] #extra files/dirs copied to game
extra_modules = ['pygame.locals'] #extra python modules not auto
found
#use the default pygame icon, if none given
if not icon_file:
path = os.path.split(pygame.__file__)[0]
icon_file = '"' + os.path.join(path, 'pygame.ico') + '"'
#unfortunately, this cool icon stuff doesn't work in current py2exe :(
#icon_file = ''
#create the proper commandline args
args = ['py2exe', '--force', '-O'+`optimize`]
args.append(dos_console and '--console' or '--windows')
if icon_file:
args.append('--icon')
args.append(icon_file)
args.append('--force-imports')
args.append(','.join(extra_modules))
#args.append(','.join(pygame_modules + extra_modules))
sys.argv[1:] = args + sys.argv[1:]
project_name = os.path.splitext(os.path.split(script)[1])[0]
#this will create the executable and all dependencies
setup(name=project_name, scripts=[script])
#also need to hand copy the extra files here
def installfile(name):
dst = os.path.join('dist', project_name)
print 'copying', name, '->', dst
if os.path.isdir(name):
dst = os.path.join(dst, name)
if os.path.isdir(dst):
shutil.rmtree(dst)
shutil.copytree(name, dst)
elif os.path.isfile(name):
shutil.copy(name, dst)
else:
print 'Warning, %s not found' % name
pygamedir = os.path.split(pygame.base.__file__)[0]
installfile(os.path.join(pygamedir, pygame.font.get_default_font()))
installfile(os.path.join(pygamedir, 'pygame_icon.bmp'))
for data in extra_data:
installfile(data)
---------------------------------------------------------
I got this from some 'here's how to make a setupfile site'. I started
using this one after the one I made caused me errors... Unfortunately
this one does the same.
I'm using IDLE (but I did also try this in the cmd prompt) so I got
ahead and F5 this setup file and it goes ahead and haks away for a few
seconds (on my pos pII 450). Shortly I recieve this block of
statements and errors:
Traceback (most recent call last):
File "C:\Documents and Settings\Administrator\My
Documents\Projects\Pygame Projects\Cards\pygame2exe.py", line 48, in
-toplevel-
setup(name=project_name, scripts=[script])
File "C:\DOCUME~1\ADMINI~1\MYDOCU~1\Projects\Python\dis tutils\core.py",
line 101, in setup
_setup_distribution = dist = klass(attrs)
File "C:\DOCUME~1\ADMINI~1\MYDOCU~1\Projects\Python\Lib \site-packages\py2exe\__init__.py",
line 75, in __init__
distutils.dist.Distribution.__init__(self, attrs)
File "C:\DOCUME~1\ADMINI~1\MYDOCU~1\Projects\Python\dis tutils\dist.py",
line 130, in __init__
setattr(self, method_name, getattr(self.metadata, method_name))
AttributeError: DistributionMetadata instance has no attribute
'get___doc__'
I looked up the last line in google and found a few posts noting the
same difficulties and I was led to believe that it was some kind of
'mistake'...
....
needless to say I was confused. I decided I could write a pretty good
cry for help (including lots of info etc) so I am now asking you for
help.
All I want to do is make my stupid little program an executable! :)
HELP!!!
Extra Info:
Python Version:2.3.3
Pygame Version:1.6
Distutils Version:1.0.2
PY2EXE Version:0.5.0
OS: Windows 2000 Pro
Thanks in advance!!! | | | | re: PY2EXE - Strange Things a-Happenin
"Funduk" <fun.duk@rogers.com> wrote in message
news:7490e644.0404271717.28a4c7b4@posting.google.c om...[color=blue]
> Hello,
>
> So I've been playing with Python and Pygame for a while and I decided
> I wanted to make a real executable so I could send that stuff over to
> my friends to show off my <sarcasm>maad skillz</sarcasm>.
>
> Everything was going great I went and got all the newest software
> (including Distutils and PY2EXE) and read the docs on making a setup
> py.
>
> Following is my setup.py: Sorry if It's a little long:
> ---------------------------------------------------------
> #make standalone, needs at least pygame-1.5.3 and py2exe-0.3.1
>
> from distutils.core import setup
> import sys, os, pygame, shutil
> import py2exe
>
> #setup the project variables here.
> #i can't claim these will cover all the cases
> #you need, but they seem to work for all my
> #projects, just change as neeeded.
>
> script = "cards.py" #name of starting .PY
> icon_file = "" #ICO file for the .EXE (not working well)
> optimize = 2 #0, 1, or 2; like -O and -OO
> dos_console = 0 #set to 0 for no dos shell when run
> extra_data = ['readme.txt'] #extra files/dirs copied to game
> extra_modules = ['pygame.locals'] #extra python modules not auto
> found
>
> #use the default pygame icon, if none given
> if not icon_file:
> path = os.path.split(pygame.__file__)[0]
> icon_file = '"' + os.path.join(path, 'pygame.ico') + '"'
> #unfortunately, this cool icon stuff doesn't work in current py2exe :(
> #icon_file = ''
>
>
> #create the proper commandline args
> args = ['py2exe', '--force', '-O'+`optimize`]
> args.append(dos_console and '--console' or '--windows')
> if icon_file:
> args.append('--icon')
> args.append(icon_file)
> args.append('--force-imports')
> args.append(','.join(extra_modules))
> #args.append(','.join(pygame_modules + extra_modules))
> sys.argv[1:] = args + sys.argv[1:]
>
> project_name = os.path.splitext(os.path.split(script)[1])[0]
>
>
> #this will create the executable and all dependencies
> setup(name=project_name, scripts=[script])
>
> #also need to hand copy the extra files here
> def installfile(name):
> dst = os.path.join('dist', project_name)
> print 'copying', name, '->', dst
> if os.path.isdir(name):
> dst = os.path.join(dst, name)
> if os.path.isdir(dst):
> shutil.rmtree(dst)
> shutil.copytree(name, dst)
> elif os.path.isfile(name):
> shutil.copy(name, dst)
> else:
> print 'Warning, %s not found' % name
>
> pygamedir = os.path.split(pygame.base.__file__)[0]
> installfile(os.path.join(pygamedir, pygame.font.get_default_font()))
> installfile(os.path.join(pygamedir, 'pygame_icon.bmp'))
> for data in extra_data:
> installfile(data)
> ---------------------------------------------------------
>
> I got this from some 'here's how to make a setupfile site'. I started
> using this one after the one I made caused me errors... Unfortunately
> this one does the same.
>
> I'm using IDLE (but I did also try this in the cmd prompt) so I got
> ahead and F5 this setup file and it goes ahead and haks away for a few
> seconds (on my pos pII 450). Shortly I recieve this block of
> statements and errors:
>
> Traceback (most recent call last):
> File "C:\Documents and Settings\Administrator\My
> Documents\Projects\Pygame Projects\Cards\pygame2exe.py", line 48, in
> -toplevel-
> setup(name=project_name, scripts=[script])
> File "C:\DOCUME~1\ADMINI~1\MYDOCU~1\Projects\Python\dis tutils\core.py",
> line 101, in setup
> _setup_distribution = dist = klass(attrs)
> File[/color]
"C:\DOCUME~1\ADMINI~1\MYDOCU~1\Projects\Python\Lib \site-packages\py2exe\__in
it__.py",[color=blue]
> line 75, in __init__
> distutils.dist.Distribution.__init__(self, attrs)
> File "C:\DOCUME~1\ADMINI~1\MYDOCU~1\Projects\Python\dis tutils\dist.py",
> line 130, in __init__
> setattr(self, method_name, getattr(self.metadata, method_name))
> AttributeError: DistributionMetadata instance has no attribute
> 'get___doc__'
>
>
> I looked up the last line in google and found a few posts noting the
> same difficulties and I was led to believe that it was some kind of
> 'mistake'...
>
> ...
>
> needless to say I was confused. I decided I could write a pretty good
> cry for help (including lots of info etc) so I am now asking you for
> help.
>
> All I want to do is make my stupid little program an executable! :)
> HELP!!!
>
> Extra Info:
> Python Version:2.3.3
> Pygame Version:1.6
> Distutils Version:1.0.2
> PY2EXE Version:0.5.0
> OS: Windows 2000 Pro
>
> Thanks in advance!!![/color]
You say you used the command prompt, but in what way?? Did you type in
"python setup.py py2exe"?? Adding the "py2exe" is what tells python to use
py2exe along with importing it into your setup script. You can't run your
setup script using IDLE or the interactive interpreter. It has to be run
from the command line. |  | | | | /bytes/about
We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights.
Get the best answers to your questions from over 226,449 network members.
|