2011-02-15 20 views
22

He estado usando cx_freeze por un tiempo y hay una cosa que realmente he querido hacer: poner TODOS los archivos en UN ejecutable que pueda distribuir. No es muy fácil enviar una carpeta llena de 30 archivos, todos en el mismo directorio. ¿Cómo puedo lograr esto? Gracias.cx_freeze python ¿solo archivo?

+5

PyInstaller hace esto. Me gustaría saber cómo hacerlo con cx_freeze también. –

+1

¡Nunca había oído hablar de PyInstaller, y se ve increíble! Gracias por la sugerencia. – pajm

Respuesta

6

¿No es esto lo que bbfreeze hace?

tutorial aquí: http://www.blog.pythonlibrary.org/2010/08/19/a-bbfreeze-tutorial-build-a-binary-series/

En realidad no es tan difícil de rodar su propia con Python zipimport http://docs.python.org/library/zipimport.html

Es posible que prefiera usar algo como UPX, que es una solución más general, no solamente Python. http://upx.sourceforge.net/

+5

¿Podría quizás poner un poco más de esfuerzo en esta respuesta? No hay un resumen de cómo hacerlo, ni siquiera un enlace a http://pypi.python.org/pypi/bbfreeze – endolith

+5

Desafortunadamente 'bbfreeze' no es compatible con Python3. – dotancohen

10

No es compatible con cx_freeze. Hubo una discusión al respecto en la lista de correo. Según recuerdo, el autor declaró que otros (PyInstaller, Py2Exe) utilizan algunos hacks sucios para lograr eso. Algunos programas antivirus también pueden considerar ese comportamiento como un virus.

Utilicé PyInstaller durante algún tiempo, pero volví a cx_freeze gracias al soporte de Python 2.7. Empaqueto todo usando Inno Setup, por lo que es fácil de distribuir. Depende si usa Windows o no.

Cuestiones relacionadas