ompilando código de Python en un solo exe

He estado tratando de compilar el código de Python en un solo exe, y no pude hacerlo correctamente.

He intentado con pyinstaller, y este es el archivo .spec:

# -*- mode: python -*-
a = Analysis([os.path.join(HOMEPATH,'support\\_mountzlib.py'), os.path.join(HOMEPATH,'support\\useUnicode.py'), 'programs\\toolbox.py'],
         pathex=['C:\\Users\\Ronaldo\\Desktop\\Python\\pyinstaller'])
pyz = PYZ(a.pure)
exe = EXE( pyz,
      a.scripts,
      a.binaries,
      a.zipfiles,
      a.datas,
      name=os.path.join('dist', 'program.exe'),
      debug=False,
      strip=False,
      upx=True,
      console=False )

Pyinstaller compiló bien, creó un único archivo exe que funcionó, pero aparentemente otros usuarios que no tenían instalada la misma versión de python (2.7.2) no pudieron ejecutarlo. No da ningún error, simplemente no se inicia. Lo probé enviándolo a algunos amigos y también probé en una máquina virtual.

Intenté py2exe. Cuando se trata de compilar (con todas las bibliotecas al lado y el resto de archivos) funciona bien. Intenté compilarlo en un solo archivo, pero el archivo exe compilado me dio el error "toolbox.exe ha dejado de funcionar". Aquí está el informe de error, por si acaso, puede ser útil:

Problem signature:
  Problem Event Name:   APPCRASH
  Application Name: toolbox.exe
  Application Version:  0.0.0.0
  Application Timestamp:    49180193
  Fault Module Name:    StackHash_0a9e
  Fault Module Version: 0.0.0.0
  Fault Module Timestamp:   00000000
  Exception Code:   c0000005
  Exception Offset: 01b61fcb
  OS Version:   6.1.7601.2.1.0.256.1
  Locale ID:    1033
  Additional Information 1: 0a9e
  Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
  Additional Information 3: 0a9e
  Additional Information 4: 0a9e372d3b4ad19135b953a78882e789

El archivo setup.py es:

from distutils.core import setup
import py2exe, sys, os

sys.argv.append('py2exe')

setup(
    options = {'py2exe': {'bundle_files': 1}},
    windows = [{'script': "toolbox.py"}],
    zipfile = None,
) single.py file:

Y aquí está el single.py

import os, sys, ctypes

ctypes.windll.user32.MessageBoxA(0,
    "curdir: %s\nexedir: %s\nsys.winver: %s" % (
        os.path.abspath(os.curdir),
        os.path.abspath(os.path.dirname(sys.argv[0])),
        sys.winver,
    ), "%s - Message" % os.path.basename(sys.executable), 0x30
)

El programa que escribí usa módulos tkinter, sys, random y win32clipboard (pywin). ¿Qué estoy haciendo mal? ¿Hay algún otro compilador mejor?

Update: por consejo de Joël, compilé con depuración y con el modo de consola. Todavía no funcionó para los usuarios que no tienen Python 2.7. Este es el mensaje de error:

C:\Users\XXXXX\Desktop>program.exe
Found embedded PKG: C:\Users\XXXXX\Desktop\program.exe
Extracting binaries
Setting up to run child
Setting magic environment var
Creating child process
Waiting for child process to finish...
Found embedded PKG: C:\Users\XXXXX\Desktop\program.exe
workpath: C:/Users/XXXXX/AppData/Local/Temp/_MEI14042/
manifestpath: C:/Users/XXXXX/AppData/Local/Temp/_MEI14042/program.exe.manifest
Activation context created
Activation context activated
C:\Users\XXXXX\AppData\Local\Temp\_MEI14042\python27.dll
Manipulating evironment
PYTHONPATH=C:/Users/XXXXX/AppData/Local/Temp/_MEI14042;C:/Users/XXXXX/Desktop
importing modules from CArchive
extracted iu
extracted struct
extracted archive
Installing import hooks
outPYZ1.pyz

Realmente espero que esto sirva de ayuda para la posible respuesta.

Respuestas a la pregunta(1)

Su respuesta a la pregunta