Pregunta

¿Hay una manera de crear un .exe independiente desde un script en Python. Ejecutables generados con py2exe pueden funcionar únicamente con pythonXX.dll. Me gustaría obtener un .exe totalmente autónomo que no requiere instalar la biblioteca de tiempo de ejecución Python. Se ve como una vinculación problema pero utilizando biblioteca estática en lugar del uno dinámico y también sería útil aplicar una tira con el fin de eliminar los símbolos no utilizados.

¿Alguna idea?

Gracias.

Alessandro

¿Fue útil?

Solución

Puede hacer esto en la última versión del py2exe ...
Sólo tiene que añadir algo así como el código de abajo en su archivo setup.py (parte clave es '' bundle_files: 1).

Para incluir su paquete TkInter en la instalación, utilice el 'incluye' llave.

distutils.core.setup(
      windows=[
            {'script': 'yourmodule.py',
             'icon_resources': [(1, 'moduleicon.ico')]
            }
      ],
      zipfile=None,
      options={'py2exe':{
                         'includes': ['tkinter'],
                         'bundle_files': 1
                        }
      }
  )

Otros consejos

Debido a la forma enlazador dinámico de Windows funciona no se puede usar la biblioteca estática si se utiliza .dll módulos de Python o .pyd; DLL cargadas en Windows no comparten automáticamente su espacio de símbolos con el ejecutable y así requieren un DLL separada que contiene los símbolos de Python.

Si su propósito de tener un único ejecutable es para facilitar la descarga / envío por correo electrónico, etc., he resuelto esta liando la salida py2exe usando Inno Setup . Esto es en realidad mejor que tener un solo ejecutable, porque en lugar de proporcionar un archivo ejecutable que se puede caer en algún directorio, una aplicación de Windows buen comportamiento proporcionará un desinstalador, mostrará en la opción Agregar / Quitar Programas, etc. Inno maneja todo esto para usted.

Otra solución es crear un solo exe con el pitón y todas sus dependencias instaladas en el interior de la misma, incluyendo el python.dll. Hay un poco de magia en el envoltorio, pero que funciona. Los detalles están aquí:

http://code.google.com /p/pylunch/downloads/detail?name=PyLunch-0.2.pdf

Esta no es la mejor manera de hacerlo, pero es posible considerar el uso ejecutable Archivo SFX tanto con el .exe y .dll archivos dentro, y se establece para ejecutar el archivo .exe cuando se hace doble clic.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top