2010-11-16 29 views
9

Duplicar posibles:
Distributing Python programsdistribuir programas escritos en Python

que tienen varios códigos fuente para algunos programas de interfaz gráfica de usuario que he hecho en Python. Me gustaría distribuirlos. Sin embargo, me gustaría que sea lo más fácil posible para el usuario final poner en marcha el programa. ¿Cuál es la forma más común de resolver este problema?

Esto es en referencia a Windows XP y sucesivamente.

+0

http://stackoverflow.com/questions/1558385/how-can-i-distribute-python-programs?lq=1 – pmav99

Respuesta

20

todas las distribuciones Linux y Mac OS notables vienen envía con alguna versión de Python. Windows no tiene Python instalado por defecto, por lo que debe instalarlo por separado para ejecutar un módulo de Python. Por supuesto, la versión de Python instalada debe ser la misma que su programa (versión 2 o 3).

La forma más fácil de distribuir su programa es simplemente distribuir el código fuente (por ejemplo, enviar su módulo por correo electrónico o subirlo en algún lugar), pero en ese caso, el PC de destino debe tener instalado Python y satisfacer las dependencias. Una solución aún mejor (al menos para la comunidad) es cargar su programa como un paquete en PyPi. Se puede encontrar más información sobre este procedimiento en HERE.

En algunos casos, hay razones que le impiden utilizar estas opciones. Por ejemplo, no puede instalar Python y/o las dependencias (sin cuenta raíz/administrador). Si ese es el caso, puede agrupar sus módulos junto con todo lo que se requiere para ejecutar su programa (por ejemplo, python * .dll en Windows). Por lo que yo sé las opciones básicas de este tipo de distribución son los siguientes:

  1. py2exe
  2. py2app (sólo para Mac OS)
  3. PyInstaller
  4. cx_Freeze
  5. bbFreeze
  6. vendorID
  7. freeze
  8. nuitka --standalone
  9. cython --embed

Una interfaz gráfica para la mayoría de estas herramientas (creo que sólo para Windows) se gui2exe (excepto congelación).

Otro enfoque sería utilizar Portable Python o en caso de Linux/BSD StaticPython

Nota: No todas las herramientas antes mencionadas se ejecutan en todas las plataformas y/o apoyar python3. Verifique su documentación.

ACTUALIZACIÓN

Un módulo en lugar intresting es también Esky, que promete actualización automática aplicaciones congeladas. Puede encontrar una video-introducción HERE

4

Quiere py2exe, que es una extensión del paquete distutils.

http://www.py2exe.org/

+7

py2exe es una extensión de distutils. No forma parte del paquete distutils, que se encuentra en la biblioteca estándar de Python. – Velociraptors

+2

El uso de py2exe básicamente incluirá el intérprete de Python y el código de python en un exe con bibliotecas adicionales (o sin archivos adicionales si se utilizan con los indicadores adecuados). A continuación, puede utilizar algo como Innosetup http://www.jrsoftware.org/isinfo.php para empaquetar los archivos necesarios en un único "autoinstalador" que facilitará la distribución a personas que no sean tecnológicas – g19fanatic

+0

[aquí hay una versión comentada] (http://aegis.codepad.org/DnSzcjW6) del script de instalación de py2exe que he usado en un par de proyectos: hace un solo archivo exe y tiene un par de buenas opciones. también [verifique upx] (http://upx.sourceforge.net/) para comprimir el ejecutable resultante – lunixbochs

Cuestiones relacionadas