2009-10-29 8 views
17

Pronto lanzaré un beta app y esto tiene la opción de crear scripts de integración personalizados en Python.¿Cómo implementar Python para usuarios de Windows?

La aplicación se centrará en Mac OS X y Windows, y mi problema es con Windows donde Python normalmente no está presente.

Mi verdadero enfoque es ejecutar silenciosamente la instalación de Python 2.6. Sin embargo, me enfrento al problema que no está activado por defecto y la ruta no se establece cuando se usa el command line options. Y me temo que si Python está instalado antes y actualizo a una nueva versión, esto podría romper algo más ...

Entonces, me pregunto cómo se puede hacer esto limpiamente. ¿Está bien si copio todo el directorio de Python 2.6 y lo coloco en un subdirectorio de mi aplicación e instalo todo allí? O con virtualenv es posible ejecutar diferentes versiones de Python (¿si Python ya está instalado en la máquina?).

También juego antes de incrustar Python con un archivo DLL, y me pareció fácil pero perdí la capacidad de depuración, por lo que me cambio a los complementos de línea de comandos.

Ejecuto los plug-ins desde la línea de comandos y leo la salida STDOUT y STDERR. La aplicación está hecha con Delphi/Lazarus. Instalo otros módulos como clientes JSON y RPC, Win32com, ORM, etc. Creo el instalador con bitrock.

ACTUALIZACIÓN: Los usuarios finales son propietarios de pequeñas empresas, y los scripts Python están hechos por desarrolladores. Quiero evitar cualquier paso adicional en la implementación, por lo que quiero una configuración totalmente integrada.

+1

¿Qué pasa con una línea en el archivo README de su aplicación que dice: descargue e instale Python 2.6? ¿Qué hay de malo en hacer una MSI de dos partes donde MSI instala la Python MSI? –

+2

Porque quiero una experiencia de instalación sin problemas;). Ya tengo la configuración de 2 partes. Python msi está instalado pero no está activado o cambió la ruta. Además, me enfrento a la situación en la que ya está instalada otra versión de python. – mamcx

+1

Porque el usuario final son pequeñas empresas. Los scripts de Python están hechos por desarrolladores. Tener otro paso por realizar es una barrera en la implementación y quiero evitarlo (es como el problema con .net y Java) – mamcx

Respuesta

13

Copie una carpeta Portable Python fuera de su instalador, en la misma carpeta que su aplicación Delphi/Lazarus. Establezca todos los caminos apropiadamente para eso.

+0

Finalmente hago algo como esto, copio la carpeta completa de python como una subcarpeta con todos los módulos preinstalados, y luego señalo la ruta – mamcx

+0

Es sorprendente la frecuencia con la que "lo más simple que podría funcionar" resulta ser una estrategia viable. –

11

Puede intentar con py2exe. ¡Crea un archivo .exe con Python ya incluido!

+0

Esto no funciona para mí, porque es una parte importante del producto la capacidad de crear complementos en python.Piensa como si mi aplicación es apache y cualquiera puede construir su sitio web en python o php. – mamcx

4

Integre el intérprete de python en su aplicación Delphi con P4D. Estos componentes realmente funcionan, y en ambas direcciones también (clases Delphi expuestas a Python como extensiones binarias, e intérprete de Python dentro de Delphi). También vi un parche para la compatibilidad de Lazarus en la página de "problemas" del Código de Google, pero parece que podría haber algunos problemas sin resolver allí.

1

Creo que no hay ningún problema para combinar el empaquetado .EXE con una herramienta como PyInstaller o py2exe y los complementos escritos por Python. El .EXE creado puede detectar fácilmente dónde está instalado y el código dentro puede simplemente archivos import de un directorio de plugins predeterminado. No olvide que una vez que empaqueta una secuencia de comandos de Python en un archivo ejecutable, también empaqueta el intérprete de Python, por lo que lo tiene: un entorno completo de Python personalizado con su propio código.

+0

Sí ... excepto que la misma herramienta estará disponible en osx y linux. Entonces, la mejor y más simple manera es enviar archivos .py. – mamcx

+0

No entiendo el contexto del comentario, mamcx. Puede utilizar py2exe para todas las plataformas, y los complementos .py no necesitan cambiar. –

+0

De acuerdo con el sitio web de py2exe es solo para Windows ... ¿o extraño algo? – mamcx

Cuestiones relacionadas