2012-03-02 18 views
13

El requisito es hacer una aplicación portable, lo que significa que no hay instalador. Miré py2exe y me temo que necesito ejecutar la instalación si quiero ejecutarlo bajo Windows.¿Cómo puedo hacer una aplicación de escritorio portátil de python?

Así que mi pregunta es, ¿puedo hacer una aplicación portátil de escritorio python sin ninguna instalación (todas las dependencias y libs están empaquetadas), arrastrándola desde USB/CD se ejecutará?

(Esto es fundamental porque es un dolor de cabeza para los usuarios instalar la biblioteca C++ tiempo de ejecución ...)

Gracias.

+0

Usted dice que es un dolor de cabeza para los usuarios instalar la biblioteca de tiempo de ejecución C++ ... ¿por qué no incluirlo en el instalador de tu programa? He empaquetado el software de Python con py2exe usando Inno Setup para la instalación. Solo hago que el instalador ejecute el tiempo de ejecución de Visual C++ redistribuible con los indicadores '/ qb' para que el usuario no tenga que hacer nada. –

+0

@ Series8217 Gracias. Creo que puedo hacer eso, pero el punto principal es sin instalador; si puede ser portátil, agradable! – CppLearner

Respuesta

9

Puede utilizar este método con py2exe: http://www.py2exe.org/index.cgi/SingleFileExecutable

Básicamente, aplicará NSIS para empaquetar todos los archivos y carpetas necesarios en un único ejecutable. Cuando lo ejecuta, los archivos necesarios se expanden a un directorio temporal, se ejecuta el archivo ejecutable y, cuando finaliza, los archivos temporales se eliminan automáticamente.

También hay un ejemplo que viene con py2exe que usa Inno Setup en lugar de NSIS para lograr el mismo resultado. Está instalado en site-packages\py2exe\samples\extending.

+0

Gracias. Lo leí, corríjalo si me equivoco: así que después de compilar el instalador, puedo copiar toda la carpeta a otra computadora. Ejecuta el ejecutable, generará los archivos apropiados como dlls en una carpeta tmp, que se eliminará una vez que el usuario cierre la aplicación. Mi aplicación requiere persistencia porque tenemos una base de datos XML, por lo que no queremos destruir los registros. ¿Cómo sé lo que se crea en el tmp? Gracias. – CppLearner

+0

@CppLearner Correcto. Después de compilar el "instalador", el único ejecutable que necesita mover a la otra computadora es el "instalador". Cuando ejecuta ese ejecutable, descomprime su contenido (el archivo exe de la aplicación y los archivos DLL necesarios, etc.), ejecuta la aplicación y, cuando la aplicación sale, elimina la carpeta temporal. Puede controlar el comportamiento editando el script de ejemplo de NSIS. –

+1

@CppLearner Si quieres datos persistentes, guárdalo donde se supone que debe ir ... quizás '% homepath% \ AppData \ MyXMLDB' o algo similar. Entonces, la aplicación siempre puede encontrarlo, independientemente de dónde lo ejecute. –

3

También puede bifurcar Portable Python y modificar para incluir su aplicación y las bibliotecas que necesita. Se ejecuta desde cualquier unidad/ubicación de red sin instalación y puede elegir ¿desea base de Python basada en 2.xx o 3.xx

Cuestiones relacionadas