PY2EXE - Strange Things a-Happenin

F

Funduk

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\distutils\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\distutils\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!!!
 
L

Lucas Raab

Funduk said:
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\distutils\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\__in
it__.py",
line 75, in __init__
distutils.dist.Distribution.__init__(self, attrs)
File "C:\DOCUME~1\ADMINI~1\MYDOCU~1\Projects\Python\distutils\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!!!

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.
 
Joined
May 29, 2012
Messages
1
Reaction score
0
right now i cant figure out how to get the program to work with making the exe file work.

the way i found to run the file is using command prompt say the file location then say py2exe in my case it was F:heligameexe\setup.py py2exe
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads

strange problem with Py2exe 2
py2exe problem 1
SQLalchemy+py2exe+pymssql error 0
py2exe and distutils 6
py2exe setup strange error 0
Py2exe problem with pyqt+matplotlib 1
Py2exe Json 0
py2exe 0.6.9 released 0

Members online

Forum statistics

Threads
473,982
Messages
2,570,190
Members
46,736
Latest member
zacharyharris

Latest Threads

Top