forked from emesene/emesene
-
Notifications
You must be signed in to change notification settings - Fork 1
/
INSTALACION_EN_WINDOWS.txt
144 lines (113 loc) · 5.78 KB
/
INSTALACION_EN_WINDOWS.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
Cómo generar archivos .exe e instaladores para una aplicación python
====================================================================
Este documento describe los pasos necesarios para crear un archivo ejecutable
de una aplicación python y cómo generar un instalador y una versión portable
para su instalación.
Este documento asume que la aplicación se basa en GTK, pero debería funcionar
con menores cambios en otros toolkits.
por qué un instalador
---------------------
* se requiere instalar muchos componentes a mano por el usuario final para una sola aplicación
* muchos instaladores pequeños
* difíciles de encontrar
* difícil encontrar las versiones exactas que funcionan en conjunto
* requiere instalarlos en un orden definido
* rezar
* algunas veces incluso haciendo todo bien puede no funcionar
* fácil de automatizar y documentar para replicar con cada nueva versión
* liberar al usuario final de los problemas para poder usar la aplicación
componentes requeridos
----------------------
* python
* todas las librerías utilizadas por la aplicación
* py2exe
* nsis
* tiempo y suerte
instaladores
------------
aquí se listan los enlaces a los instaladores de todos los componentes usados en el ejemplo.
* http://python.org/ftp/python/2.6.6/python-2.6.6.msi
* http://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/py2exe-0.6.9.win32-py2.6.exe/download
* http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/1.8/pycairo-1.8.6.win32-py2.6.exe
* http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/2.20/pygobject-2.20.0.win32-py2.6.exe
* http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.16/pygtk-2.16.0+glade.win32-py2.6.exe
* http://sourceforge.net/projects/pywin32/files/pywin32/Build%20214/pywin32-214.win32-py2.6.exe/download
* http://sourceforge.net/projects/gtk-win/files/GTK%2B%20Runtime%20Environment/GTK%2B%202.22/gtk2-runtime-2.22.0-2010-10-01-ash.exe/download
* http://sourceforge.net/projects/gtk-win/files/GTK%2B%20Themes%20Package/2009-09-07/gtk2-themes-2009-09-07-ash.exe/download
* http://prdownloads.sourceforge.net/nsis/nsis-2.46-setup.exe?download
* http://download.microsoft.com/download/d/d/9/dd9a82d0-52ef-40db-8dab-795376989c03/vcredist_x86.exe
* http://www.slproweb.com/download/Win32OpenSSL_Light-1_0_0c.exe
* http://www.voidspace.org.uk/downloads/pycrypto-2.0.1.win32-py2.6.exe
orden de instalación
--------------------
algunos instaladores son independientes de otros, pero para evitar posibles problemas se recomienda la instalación en el siguiente orden.
* python
* gtk-runtime
* gtk2-themes
* nsis
* pygobject
* pycairo
* pygtk
* pywin32
* py2exe
* VC++ redistributable
* Win32OpenSSL
* PyCrypto
tareas extra
------------
* agregar a la variable de entorno PATH la ruta a la instalación de python
* probar la instalación con una pequeña aplicación GTK
::
>>> import gtk
>>> w = gtk.Window()
>>> l = gtk.Label("asd")
>>> w.add(l)
>>> w.show_all()
>>> gtk.main()
prueba con una aplicación de ejemplo
------------------------------------
Cree un repositorio con una aplicación de ejemplo para probar los pasos, la aplicación está disponible en GitHub aquí:
http://github.com/marianoguerra/PyGtkOnWindows
pasos
:::::
* descargarla
* descomprimirla
* ejecutar python setup.py py2exe
* copiar los directorios lib y share de la instalación del runtime de gtk (no de la instalación de pygtk) al directorio dist
* copiar todos los archivos del directorio dll al directorio dist
* borrar los locales y temas no usados de los directorios copiados a dist (yo solo dejo el theme MS-Windows)
* crear la siguiente estructura de directorios dentro de dist: etc/gtk-2.0
* dentro de ese directorio crear un archivo llamado gtkrc con una linea como la siguiente dentro:
* gtk-theme-name = "MS-Windows"
* puedes cambiar el tema usado manteniendo otro tema dentro de share/themes y cambiando el nombre del tema en gtkrc
* clic derecho en ejemplo.nsi y seleccionar "Compile NSIS Script"
* clic derecho en ejemplo-portable.nsi y seleccionar "Compile NSIS Script"
* deberías tener el instalador y la versión portable disponibles
* para probar que funciona correctamente, ejecutar el instalador y la versión portable en una instalación de Windows sin los paquetes que instalaste anteriormente
probar con una aplicación real
------------------------------
ahora, para sentirlo más real, creemos un instalador y una versión portable de
un programa real, en este caso, un proyecto personal llamado emesene 2
(http://www.emesene.org/).
pasos
:::::
* descargarlo de http://github.com/emesene/emesene
* descomprimirlo
* copiar setup.py, ez_setup.py y emesene.ico al directorio emesene
* cd emesene
* ejecutar python setup.py py2exe
* cd ..
* copiar los directorios lib y share de la instalación del runtime de gtk (no de la instalación de pygtk) al directorio dist
* copiar todos los archivos del directorio dll al directorio dist
* borrar los locales y temas no usados de los directorios copiados a dist (yo solo dejo el theme MS-Windows)
* crear la siguiente estructura de directorios dentro de dist: etc/gtk-2.0
* dentro de ese directorio crear un archivo llamado gtkrc con una linea como la siguiente dentro:
* gtk-theme-name = "MS-Windows"
* puedes cambiar el tema usado manteniendo otro tema dentro de share/themes y cambiando el nombre del tema en gtkrc
* clic derecho en ejemplo.nsi y seleccionar "Compile NSIS Script"
* clic derecho en ejemplo-portable.nsi y seleccionar "Compile NSIS Script"
* deberías tener el instalador y la versión portable disponibles
* para probar que funciona correctamente, ejecutar el instalador y la versión portable en una instalación de Windows sin los paquetes que instalaste anteriormente
notas
-----
* obtengo algunos de los dlls requeridos de portable python (http://www.portablepython.com/) e inkscape (http://inkscape.org/)