Discussion:
Creando 'standalone' package (exe) de un proyecto Django para Windows
Emiliano Dalla Verde Marcozzi
2014-06-13 13:45:32 UTC
Permalink
Buenas lista! Tengo que crear un .exe que instale un proyecto django y lo
haga correr
en windows. Idealmente me gustaría poder embeber en el .exe algún servidor
http liviano,
el runserver de django también es una opción ya que el sistema lo van a
usar en una sola
máquina. Lo que más persigo, es que si se rompe la máquina, el cliente con
el .exe pueda
volver a instalar la app, copiar la sqlite que tenía backaupeada y que
salga andando
nuevamente.
Experiencias en esto?
Tendré que ponerme a escribir toda la app en PyQt? :P
Saludos y muchas gracias!
--
Broken code @ https://github.com/edvm

<edvm-+ZN9ApsXKcFd+***@public.gmane.org>
Juan Carlos
2014-06-13 14:35:12 UTC
Permalink
2014-06-13 10:45 GMT-03:00 Emiliano Dalla Verde Marcozzi <
Post by Emiliano Dalla Verde Marcozzi
Buenas lista! Tengo que crear un .exe que instale un proyecto django y lo
haga correr
en windows. Idealmente me gustaría poder embeber en el .exe algún servidor
http liviano,
el runserver de django también es una opción ya que el sistema lo van a
usar en una sola
máquina. Lo que más persigo, es que si se rompe la máquina, el cliente con
el .exe pueda
volver a instalar la app, copiar la sqlite que tenía backaupeada y que
salga andando
nuevamente.
Experiencias en esto?
Tendré que ponerme a escribir toda la app en PyQt? :P
Es muy complejo el projecto Django?, muchas Apps y modulos ?


Podes probar con Nuitka, tal vez en Standalone mode,

(Django puede traer algun que otro detalle en la inicializacion al
instanciar cosas en los settings.)

Que es?, Overview, etc: http://nuitka.net/pages/overview.html

GitHub, Pull Requests, etc: https://github.com/kayhayen/Nuitka

Docs, etc: http://nuitka.net/doc/user-manual.html

GUI para Nuitka: https://github.com/juancarlospaco/nuitka-gui#nuitka-gui
Emiliano Dalla Verde Marcozzi
2014-06-13 14:43:05 UTC
Permalink
Post by Juan Carlos
2014-06-13 10:45 GMT-03:00 Emiliano Dalla Verde Marcozzi <
Post by Emiliano Dalla Verde Marcozzi
Buenas lista! Tengo que crear un .exe que instale un proyecto django y lo
haga correr
en windows. Idealmente me gustaría poder embeber en el .exe algún
servidor http liviano,
el runserver de django también es una opción ya que el sistema lo van a
usar en una sola
máquina. Lo que más persigo, es que si se rompe la máquina, el cliente
con el .exe pueda
volver a instalar la app, copiar la sqlite que tenía backaupeada y que
salga andando
nuevamente.
Experiencias en esto?
Tendré que ponerme a escribir toda la app en PyQt? :P
Es muy complejo el projecto Django?, muchas Apps y modulos ?
Para nada, yo creo que es bastante simple:
https://github.com/edvm/takosushi

Podes probar con Nuitka, tal vez en Standalone mode,
Genial, vos lo probaste? If true, complicaciones? Como maneja los
'requirements' del proyecto?
Muchas gracias y saludos!
--
Broken code @ https://github.com/edvm

<edvm-+ZN9ApsXKcFd+***@public.gmane.org>
Leandro Poblet
2014-06-13 14:45:59 UTC
Permalink
El 13 de junio de 2014, 11:43, Emiliano Dalla Verde Marcozzi <
Post by Juan Carlos
2014-06-13 10:45 GMT-03:00 Emiliano Dalla Verde Marcozzi <
Post by Emiliano Dalla Verde Marcozzi
Buenas lista! Tengo que crear un .exe que instale un proyecto django y
lo haga correr
en windows. Idealmente me gustaría poder embeber en el .exe algún
servidor http liviano,
el runserver de django también es una opción ya que el sistema lo van a
usar en una sola
máquina. Lo que más persigo, es que si se rompe la máquina, el cliente
con el .exe pueda
volver a instalar la app, copiar la sqlite que tenía backaupeada y que
salga andando
nuevamente.
Experiencias en esto?
Tendré que ponerme a escribir toda la app en PyQt? :P
Py2exe es la mejor opción ya que te deja definir una aplicación como
interfaz gráfica, consola o servicio de windows que puede correr a bajo
nivel. Acá tenés un ejemplo:
https://www.evanreichard.com/2013/08/06/wrapping-a-python-windows-service-as-an-exe-using-py2exe/
Juan Carlos
2014-06-13 19:01:47 UTC
Permalink
2014-06-13 11:43 GMT-03:00 Emiliano Dalla Verde Marcozzi <
Post by Emiliano Dalla Verde Marcozzi
Genial, vos lo probaste? If true, complicaciones? Como maneja los
'requirements' del proyecto?
Colaboro con el projecto, se prodria decir que si....,

pero no con MS Windows, de esa forma, mas lo use con cosas desktop y para
acelerar la velocidad de modulos,

las complicaciones puede ser como funciona Django internamente.

En la web de Nuitka explica mas detallado, pero basicamente es un Bundler
tambien, o sea mete TODO adentro del ejecutable binario.

Cualquier cosa avisa :)
Juan Carlos
2014-06-13 19:20:20 UTC
Permalink
2014-06-13 11:43 GMT-03:00 Emiliano Dalla Verde Marcozzi <
vos lo probaste? complicaciones? Como maneja los 'requirements' del
proyecto?
En PyCon-2014 estaban hablando la experiencia con esto, si te sirve
(disertante no tiene relacion con el projecto, lo que lo hace mas
interesante):



Ahora se agrego para traducir Python a C plano, stand-alone mode, y
Python3.4, desde esa conferencia. De ultima abri Bug, o mande Pull Request
:P
Martín Gaitán
2014-06-14 21:16:57 UTC
Permalink
Para mi meterse con un "compilación" de python para este problema es una
sobreingeniería que te va a explotar a mitad de cuadra.

fijate qué "empaquetadores" que arman exe se lleva mejor con django. Mi
primera búsqueda me dio esto
http://www.pyinstaller.org/wiki/Recipe/DjangoApplication
Post by Juan Carlos
2014-06-13 11:43 GMT-03:00 Emiliano Dalla Verde Marcozzi <
vos lo probaste? complicaciones? Como maneja los 'requirements' del
proyecto?
En PyCon-2014 estaban hablando la experiencia con esto, si te sirve
(disertante no tiene relacion con el projecto, lo que lo hace mas
http://youtu.be/wsczq6j3_bA
Ahora se agrego para traducir Python a C plano, stand-alone mode, y
Python3.4, desde esa conferencia. De ultima abri Bug, o mande Pull Request
:P
_______________________________________________
http://listas.python.org.ar/listinfo/pyar
PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
--
mgaitan.github.io
textosypretextos.com.ar <http://textosyprextextos.com.ar>
Emiliano Dalla Verde Marcozzi
2014-06-14 22:31:12 UTC
Permalink
Post by Martín Gaitán
Para mi meterse con un "compilación" de python para este problema es una
sobreingeniería que te va a explotar a mitad de cuadra.
fijate qué "empaquetadores" que arman exe se lleva mejor con django. Mi
primera búsqueda me dio esto
http://www.pyinstaller.org/wiki/Recipe/DjangoApplication
Gracias Martín, estoy probandolo, ya genere un exe pero revienta con un:
ImportError: cannot import name http_cookies :)
A seguir remandola ...
--
Broken code @ https://github.com/edvm

<edvm-+ZN9ApsXKcFd+***@public.gmane.org>
Emiliano Dalla Verde Marcozzi
2014-06-15 05:47:57 UTC
Permalink
Bueno, aún no lo tengo resuelto. Para que quede en el histórico he probado
en todos los
casos con un sitio base de django (django-admin.py startproject foo) y
estos son los
resultados:
1- py2exe. No me ha dado resultado, revienta con un:
"ImportError: No module named django.bin"
No he podido encontrar documentación reciente que hable de como empaquetar
django
con py2exe, excepto en: http://www.danomagnum.com/wiki/py2exe%20and%20django
py2exe no se actualiza desde el 2008, lo cual lo deja medio obsoleto.
Parece que ha
funcionado con versiones anteriores de django, pero con django 1.6 no va ni
por casualidad.
2- PyInstaller. Tampoco me funciona con django 1.6:
http://www.pyinstaller.org/ticket/642
Son las 03:00 am de la madrugada,
Soy John Connor, si estais leyendo este mail, sois de la resistencia,
Saludos
--
Broken code @ https://github.com/edvm

<edvm-+ZN9ApsXKcFd+***@public.gmane.org>
Emiliano Dalla Verde Marcozzi
2014-06-16 15:04:47 UTC
Permalink
El 15 de junio de 2014, 2:47, Emiliano Dalla Verde Marcozzi <
Post by Emiliano Dalla Verde Marcozzi
"ImportError: No module named django.bin"
No he podido encontrar documentación reciente que hable de como empaquetar
django
http://www.danomagnum.com/wiki/py2exe%20and%20django
py2exe no se actualiza desde el 2008, lo cual lo deja medio obsoleto.
Parece que ha
funcionado con versiones anteriores de django, pero con django 1.6 no va
ni por casualidad.
http://www.pyinstaller.org/ticket/642
3- Nuitka: Tampoco resultó, cuando se puso a compilar explotó tirando algo
similar a que
se quedó sin espacio en el heap. Tengo 4gb de ram, no es mucho, pero creo
tampoco poco,
en fín, no way.
Saludos!
--
Broken code @ https://github.com/edvm

<edvm-+ZN9ApsXKcFd+***@public.gmane.org>
Juan Carlos
2014-06-17 18:20:18 UTC
Permalink
2014-06-16 12:04 GMT-03:00 Emiliano Dalla Verde Marcozzi <
Post by Emiliano Dalla Verde Marcozzi
3- Nuitka: Tampoco resultó, cuando se puso a compilar explotó tirando algo
similar
Reportalo en un Bug, con el trace, y la salida, etc en Nuitka. La mayoria
de los Bug son solucionados rapido,
siempre MS Window tiene sus caprichos particulares, hay que ver de combinar
parametros adecuados a veces...

Saludos.
Emiliano Dalla Verde Marcozzi
2014-06-18 14:08:23 UTC
Permalink
Primer avance! No es la solución perfecta, pero es bastante muy buena!
Hay muchas cosas por probar, sobre todo los links que pasó Mariano
Reingart, que
parecen ser la forma pythonica, pero bue encaré primero lo que propuso
Angel Java Lopez
de meter todo en un directorio. Lo que hice fue:

1- Descargar http://portablepython.com/ e instalarlo en el escritorio, en
una carpeta que le
llamé 'TomodachiCards' (por ser el nombre del programa para el cliente,
podría haber sisdo
cualquier otra cosa).
2- Me metí en la carpeta TomodachiCards y me encontré con una estructura de
directorio
similar a:

TomodachiCards/
Portable-Python.exe
App/
python.exe
Lib/
Scripts/
...

3- Al instalar PortablePython podes elegir de una lista ya definida que
librerías de python
queres que instale, y está django 1.6! :D por lo que la carpeta
TomodachiCards dentro
ya tiene instalado django.
4- Copie todo el root de mi proyecto django (directorio llamado takosushi)
dentro de TomodachiCards
con lo que la estructura de directorios pasó a ser:

TomodachiCards/
takosushi/
Portable-Python.exe
App/
python.exe
Lib/
Scripts/
...

5- Me metí dentro del directorio takosushi y llamé al manage.py con
cd takosushi
..\App\python.exe manage.py runserver
6- El paso 5 reventó porque mi proyecto hace uso de librerías externas. En
mi sistema, tengo
instalado python27 y pip. Con pip instalé las librerías que mi proyecto
precisa. Las librerías
están en c:/python27/lib/site-packages/. Lo que hice fue copiarlas y
pegarlas dentro de:

TomodachiCards/App/Lib/site-packages/

7- Ahora si! Volví a correr ..\App\python.exe manage.py runserver y el
proyecto anda de pm! :D
8- PortablePython te promete que el viene con todo lo que necesita dentro
de esa carpeta, y que
si lo moves a otro windows va a funcionar. Ok, yo probé todo esto en
Windows 7, así que armé
una vm con Windows Enterprise Server 2003 (que es lo que tiene el cliente),
renegué MUCHISIMO
con las restricciones de internet explorer (que no viene al caso, pero
quería hacer un poco de
catarsis) copie toda la carpeta TomodachiCards a la vm, ejecute 'cmd',
cambie al directorio
cd takosushi
..\App\python.exe manage.py runserver
Y voilá! Eureka! Abrí con el browser localhost:8000 y funciona!

Cosas que me faltan por hacer:
1- Comprimir el directorio TomodachiCards en 7z o .zip y crear un .exe que
se autodescomprima
2- Crear un run.cmd en el root del directorio TomodachiCards que ejecute el
manage.py runserver

Bueno, espero que les haya gustado!
Chau!
--
Broken code @ https://github.com/edvm

<edvm-+ZN9ApsXKcFd+***@public.gmane.org>
Angel Java Lopez
2014-06-18 15:22:28 UTC
Permalink
Excelente data, gracias por compartir!


2014-06-18 11:08 GMT-03:00 Emiliano Dalla Verde Marcozzi <
Post by Emiliano Dalla Verde Marcozzi
Primer avance! No es la solución perfecta, pero es bastante muy buena!
Hay muchas cosas por probar, sobre todo los links que pasó Mariano
Reingart, que
parecen ser la forma pythonica, pero bue encaré primero lo que propuso
Angel Java Lopez
1- Descargar http://portablepython.com/ e instalarlo en el escritorio, en
una carpeta que le
llamé 'TomodachiCards' (por ser el nombre del programa para el cliente,
podría haber sisdo
cualquier otra cosa).
2- Me metí en la carpeta TomodachiCards y me encontré con una estructura
de directorio
TomodachiCards/
Portable-Python.exe
App/
python.exe
Lib/
Scripts/
...
3- Al instalar PortablePython podes elegir de una lista ya definida que
librerías de python
queres que instale, y está django 1.6! :D por lo que la carpeta
TomodachiCards dentro
ya tiene instalado django.
4- Copie todo el root de mi proyecto django (directorio llamado takosushi)
dentro de TomodachiCards
TomodachiCards/
takosushi/
Portable-Python.exe
App/
python.exe
Lib/
Scripts/
...
5- Me metí dentro del directorio takosushi y llamé al manage.py con
cd takosushi
..\App\python.exe manage.py runserver
6- El paso 5 reventó porque mi proyecto hace uso de librerías externas. En
mi sistema, tengo
instalado python27 y pip. Con pip instalé las librerías que mi proyecto
precisa. Las librerías
están en c:/python27/lib/site-packages/. Lo que hice fue copiarlas y
TomodachiCards/App/Lib/site-packages/
7- Ahora si! Volví a correr ..\App\python.exe manage.py runserver y el
proyecto anda de pm! :D
8- PortablePython te promete que el viene con todo lo que necesita dentro
de esa carpeta, y que
si lo moves a otro windows va a funcionar. Ok, yo probé todo esto en
Windows 7, así que armé
una vm con Windows Enterprise Server 2003 (que es lo que tiene el
cliente), renegué MUCHISIMO
con las restricciones de internet explorer (que no viene al caso, pero
quería hacer un poco de
catarsis) copie toda la carpeta TomodachiCards a la vm, ejecute 'cmd',
cambie al directorio
cd takosushi
..\App\python.exe manage.py runserver
Y voilá! Eureka! Abrí con el browser localhost:8000 y funciona!
1- Comprimir el directorio TomodachiCards en 7z o .zip y crear un .exe que
se autodescomprima
2- Crear un run.cmd en el root del directorio TomodachiCards que ejecute
el manage.py runserver
Bueno, espero que les haya gustado!
Chau!
--
_______________________________________________
http://listas.python.org.ar/listinfo/pyar
PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
Marian
2014-06-19 04:01:12 UTC
Permalink
Dos pequeñas sugerencias: podés usar el NSIS con HMNis editor para generar
un instalador con todo el paquete. Ambos se bajan e instalan en una patada,
el primero es feo, el segundo es el WIZARD que hace facil lo feo


Y para hacer pequeños accesos directos a programas .py que corro desde
portable python, yo uso este .bat

@echo off
echo iniciando variables python en %cd:~0,3%
SET PYTHON_HOME=%cd:~0,3%python27\app
SET PATH=%PATH%;%PYTHON_HOME%;%PYTHON_HOME%\SCRIPTS
echo Directorio de trabajo %cd:~0,3%%1
cd "%cd:~0,3%%1"
echo llamando programa %cd:~0,3%%1\%2
%PYTHON_HOME%\python.exe "%cd:~0,3%%1\%2" %3 %4


El truco está en que DOS te devuelve el Drive en la variable %cd:~0,3%
cuando entrás el pendrive, así que los .bat se adaptan a los distintos
nombres de drive que se usan.

Mucha suerte!
Post by Angel Java Lopez
Excelente data, gracias por compartir!
2014-06-18 11:08 GMT-03:00 Emiliano Dalla Verde Marcozzi <
Post by Emiliano Dalla Verde Marcozzi
Primer avance! No es la solución perfecta, pero es bastante muy buena!
Hay muchas cosas por probar, sobre todo los links que pasó Mariano
Reingart, que
parecen ser la forma pythonica, pero bue encaré primero lo que propuso
Angel Java Lopez
1- Descargar http://portablepython.com/ e instalarlo en el escritorio,
en una carpeta que le
llamé 'TomodachiCards' (por ser el nombre del programa para el cliente,
podría haber sisdo
cualquier otra cosa).
2- Me metí en la carpeta TomodachiCards y me encontré con una estructura
de directorio
TomodachiCards/
Portable-Python.exe
App/
python.exe
Lib/
Scripts/
...
3- Al instalar PortablePython podes elegir de una lista ya definida que
librerías de python
queres que instale, y está django 1.6! :D por lo que la carpeta
TomodachiCards dentro
ya tiene instalado django.
4- Copie todo el root de mi proyecto django (directorio llamado
takosushi) dentro de TomodachiCards
TomodachiCards/
takosushi/
Portable-Python.exe
App/
python.exe
Lib/
Scripts/
...
5- Me metí dentro del directorio takosushi y llamé al manage.py con
cd takosushi
..\App\python.exe manage.py runserver
6- El paso 5 reventó porque mi proyecto hace uso de librerías externas.
En mi sistema, tengo
instalado python27 y pip. Con pip instalé las librerías que mi proyecto
precisa. Las librerías
están en c:/python27/lib/site-packages/. Lo que hice fue copiarlas y
TomodachiCards/App/Lib/site-packages/
7- Ahora si! Volví a correr ..\App\python.exe manage.py runserver y el
proyecto anda de pm! :D
8- PortablePython te promete que el viene con todo lo que necesita dentro
de esa carpeta, y que
si lo moves a otro windows va a funcionar. Ok, yo probé todo esto en
Windows 7, así que armé
una vm con Windows Enterprise Server 2003 (que es lo que tiene el
cliente), renegué MUCHISIMO
con las restricciones de internet explorer (que no viene al caso, pero
quería hacer un poco de
catarsis) copie toda la carpeta TomodachiCards a la vm, ejecute 'cmd',
cambie al directorio
cd takosushi
..\App\python.exe manage.py runserver
Y voilá! Eureka! Abrí con el browser localhost:8000 y funciona!
1- Comprimir el directorio TomodachiCards en 7z o .zip y crear un .exe
que se autodescomprima
2- Crear un run.cmd en el root del directorio TomodachiCards que ejecute
el manage.py runserver
Bueno, espero que les haya gustado!
Chau!
--
_______________________________________________
http://listas.python.org.ar/listinfo/pyar
PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
_______________________________________________
http://listas.python.org.ar/listinfo/pyar
PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
--
Marian
"The corollary to this is that *appearances matter*. Programmers, in
particular, often don't like to believe this. *Their love of substance over
form is almost a point of professional pride.* It's no accident that so
many programmers exhibit an antipathy for marketing and public relations
work, " Producing OSS <http://producingoss.com/en/producingoss.html>
i-Terra <http://www.i-terra.com.ar> - Mi sitio Python
<https://sites.google.com/site/mavignau/de-visual-basic-a-python-como-y-porque>
____________________________
Emiliano Dalla Verde Marcozzi
2014-06-19 13:11:15 UTC
Permalink
Post by Marian
Dos pequeñas sugerencias: podés usar el NSIS con HMNis editor para generar
un instalador con todo el paquete. Ambos se bajan e instalan en una patada,
el primero es feo, el segundo es el WIZARD que hace facil lo feo
Y para hacer pequeños accesos directos a programas .py que corro desde
portable python, yo uso este .bat
@echo off
echo iniciando variables python en %cd:~0,3%
SET PYTHON_HOME=%cd:~0,3%python27\app
SET PATH=%PATH%;%PYTHON_HOME%;%PYTHON_HOME%\SCRIPTS
echo Directorio de trabajo %cd:~0,3%%1
cd "%cd:~0,3%%1"
echo llamando programa %cd:~0,3%%1\%2
%PYTHON_HOME%\python.exe "%cd:~0,3%%1\%2" %3 %4
El truco está en que DOS te devuelve el Drive en la variable %cd:~0,3%
cuando entrás el pendrive, así que los .bat se adaptan a los distintos
nombres de drive que se usan.
Mucha suerte!
Bueniiiiiiiiisimo! Alta data! Muchas gracias! :D
--
Broken code @ https://github.com/edvm

<edvm-+ZN9ApsXKcFd+***@public.gmane.org>
Javier Marcon
2014-06-20 15:59:57 UTC
Permalink
Bueno, aún no lo tengo resuelto. Para que quede en el histórico he
probado en todos los
casos con un sitio base de django (django-admin.py startproject foo) y
estos son los
"ImportError: No module named django.bin"
No he podido encontrar documentación reciente que hable de como
empaquetar django
con py2exe, excepto
en: http://www.danomagnum.com/wiki/py2exe%20and%20django
py2exe no se actualiza desde el 2008, lo cual lo deja medio obsoleto.
Parece que ha
funcionado con versiones anteriores de django, pero con django 1.6 no
va ni por casualidad.
Para compilar con py2exe podes ponerle los modulos y paquetes que queres
que incluya (y que no te encuentra), te paso un ejemplo:


#coding: cp1252

from distutils.core import setup
import py2exe, sys

# para que encuentre el package common
sys.path.append('../programa')

sys.argv.append('py2exe')

setup(
options = {'py2exe': {
'bundle_files': 2,
'compressed': True,
'dll_excludes': ["oci.dll"], #esto es para Oracle, que no
incluya el dll de la instalacion de oracle
'includes': [
'pyodbc', 'logging', 'gzip', 'getopt', 'sys', 'string',
'datetime', 'collections', 'uuid', 'json', 'requests',
'platform', 'random', 'sched', 'time', 'ConfigParser',
'decimal', 'copy', 'demjson'],
'packages': ['common', 'encodings']
}},
console = [{'script': "../programa/main.py",
"dest_base": "programa",
"icon_resources": [(1, "logo_programa.ico")]
}],
zipfile = None,
version = "0.1.2.3",
description = "Mi mega Programa",
name = "Super prog"

)


Salu2,

Javier.






_______________________________________________
pyar mailing list pyar-+ZN9ApsXKcFd+***@public.gmane.org
http://listas.python.org.ar/listinfo/pyar

PyAr - Python Argentina - Sitio web: http://www.python.org.ar/

La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar
Varela Matias
2015-08-04 17:23:37 UTC
Permalink
Buenas tardes.

Perdón por revivir un hilo viejo (un año ya) pero estoy por realizar lo
mismo, y quería saber si lo habías resulto como comentaste (Emiliano), y
cómo te había ido con el resultado.

Abrazo
Post by Javier Marcon
Post by Emiliano Dalla Verde Marcozzi
Bueno, aún no lo tengo resuelto. Para que quede en el histórico he
probado en todos los
casos con un sitio base de django (django-admin.py startproject foo) y
estos son los
"ImportError: No module named django.bin"
No he podido encontrar documentación reciente que hable de como
empaquetar django
con py2exe, excepto
en: http://www.danomagnum.com/wiki/py2exe%20and%20django
py2exe no se actualiza desde el 2008, lo cual lo deja medio obsoleto.
Parece que ha
funcionado con versiones anteriores de django, pero con django 1.6 no
va ni por casualidad.
Para compilar con py2exe podes ponerle los modulos y paquetes que queres
#coding: cp1252
from distutils.core import setup
import py2exe, sys
# para que encuentre el package common
sys.path.append('../programa')
sys.argv.append('py2exe')
setup(
options = {'py2exe': {
'bundle_files': 2,
'compressed': True,
'dll_excludes': ["oci.dll"], #esto es para Oracle, que no
incluya el dll de la instalacion de oracle
'includes': [
'pyodbc', 'logging', 'gzip', 'getopt', 'sys', 'string',
'datetime', 'collections', 'uuid', 'json', 'requests',
'platform', 'random', 'sched', 'time', 'ConfigParser',
'decimal', 'copy', 'demjson'],
'packages': ['common', 'encodings']
}},
console = [{'script': "../programa/main.py",
"dest_base": "programa",
"icon_resources": [(1, "logo_programa.ico")]
}],
zipfile = None,
version = "0.1.2.3",
description = "Mi mega Programa",
name = "Super prog"
)
Salu2,
Javier.
_______________________________________________
http://listas.python.org.ar/listinfo/pyar
PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
--
*Matias E. Varela*
San Rafael, Mendoza
Blog: http://matuu.com.ar
Twitter: @matuvarela <http://twitter.com/matuvarela>
Skype: matu.varela
Emiliano Dalla Verde Marcozzi
2015-08-04 23:57:11 UTC
Permalink
Post by Varela Matias
Buenas tardes.
Perdón por revivir un hilo viejo (un año ya) pero estoy por realizar lo
mismo, y quería saber si lo habías resulto como comentaste (Emiliano), y
cómo te había ido con el resultado.
Abrazo
Buenas Matias,
Para windows termine utilizando: http://portablepython.com/
Te bajas el instalador para windows, lo instalas y prestas atención en que
path
lo haces (ej c:\Python27). Si comprimís toda esa carpeta y la pasas a otra
máquina
incluso con otra versión de Windows, debería funcionar. Entonces lo que
hice fue
usar el python de PortablePython para instalar todas las dependencias y el
software
que hice. No recuerdo bien, creo que primero tuve que instalar pip. Para
poder instalar
pip, primero debía poder tener corriendo easy_install. Siempre utilizando
el python
que viene dentro de PortablePython, creo haber hecho algo como:
1- Descargar ez_setup.py para poder instalar easy_install, ej (los
paths/ruta a los directorios
Post by Varela Matias
cd c:\Python27\
bin\Python27.exe ez_setup.py
2- Si 1 sale bien, debería instalarte dentro de bin in script llamado
easy_install, usas este
Post by Varela Matias
bin\easy_install pip
3- Si 2 sale bien, genial! ya tenes pip para instalar las dependencias de
tu proyecto
Post by Varela Matias
bin\pip install -r \ruta\de\mi\requirement.txt
bin\Python27.exe \ruta\del\setup.py install
Una vez hecho todo esto, deberías encontrar DENTRO de la carpeta de
PortablePython
todas las dependencias y el código de tu software dentro de la carpeta lib
(en alguna parte).
5- Comprimis TODO el directorio de PortablePython, creo haber usado 7-zip
el cual tiene una
opción para generar un .exe (winzip creo también soporta esto, hay varias
tools en windows
que a partir de un .zip generan .exe

Para arrancar el programa, escribí un archivo batch que ejecuta el software
utilizando el
interprete de PortablePython, ya que es ese el interprete que sabe donde
encontrar todos
tus requirements y el código de tu software.
Podes ver de ejemplo el .exe de Pysenteishon: edvm.github.io/pysenteishon
Te lo podes bajar, instalar, y chusemas el batch del que te hablo. También
podes chusmear
el contenido de la carpeta que extrae y ver que dentro de lib/nose cuanto
están instaladas
las dependencias (Flask, y no recuerdo que otros).

Esto fue lo que mejor me resultó, son varios pasos, no se si te sea lo más
conveniente. En mi
caso me deja tranquilo porque lo que hago es usar un interprete de Python
portable (el de
PortablePython) meterle adentro todo lo que necesito, lo comprimo, genero
un .exe desde el
archivo comprimido, y listo! En mi caso probé el mismo exe en Windows NT,
Windows XP
y Windows 8, y funcionó sin problemas, lo cual me dejó re contento jeje.

Saludos,
Emiliano.
--
Broken code @ https://github.com/edvm

<***@python.org.ar>
Varela Matias
2015-08-05 12:47:06 UTC
Permalink
Groso! Muchas gracias por toda la info, voy a estar viendo este el finde,
ya veremos como resulta.
Me deja tranquilo que ya lo hayas utilizado y que todo haya ido muy bien.

Muchas gracias Emiliano, abrazo!

El 4 de agosto de 2015, 20:57, Emiliano Dalla Verde Marcozzi <
Post by Emiliano Dalla Verde Marcozzi
Post by Varela Matias
Buenas tardes.
Perdón por revivir un hilo viejo (un año ya) pero estoy por realizar lo
mismo, y quería saber si lo habías resulto como comentaste (Emiliano), y
cómo te había ido con el resultado.
Abrazo
Buenas Matias,
Para windows termine utilizando: http://portablepython.com/
Te bajas el instalador para windows, lo instalas y prestas atención en que
path
lo haces (ej c:\Python27). Si comprimís toda esa carpeta y la pasas a otra
máquina
incluso con otra versión de Windows, debería funcionar. Entonces lo que
hice fue
usar el python de PortablePython para instalar todas las dependencias y el
software
que hice. No recuerdo bien, creo que primero tuve que instalar pip. Para
poder instalar
pip, primero debía poder tener corriendo easy_install. Siempre utilizando
el python
1- Descargar ez_setup.py para poder instalar easy_install, ej (los
paths/ruta a los directorios
Post by Varela Matias
cd c:\Python27\
bin\Python27.exe ez_setup.py
2- Si 1 sale bien, debería instalarte dentro de bin in script llamado
easy_install, usas este
Post by Varela Matias
bin\easy_install pip
3- Si 2 sale bien, genial! ya tenes pip para instalar las dependencias de
tu proyecto
Post by Varela Matias
bin\pip install -r \ruta\de\mi\requirement.txt
bin\Python27.exe \ruta\del\setup.py install
Una vez hecho todo esto, deberías encontrar DENTRO de la carpeta de
PortablePython
todas las dependencias y el código de tu software dentro de la carpeta lib
(en alguna parte).
5- Comprimis TODO el directorio de PortablePython, creo haber usado 7-zip
el cual tiene una
opción para generar un .exe (winzip creo también soporta esto, hay varias
tools en windows
que a partir de un .zip generan .exe
Para arrancar el programa, escribí un archivo batch que ejecuta el
software utilizando el
interprete de PortablePython, ya que es ese el interprete que sabe donde
encontrar todos
tus requirements y el código de tu software.
Podes ver de ejemplo el .exe de Pysenteishon: edvm.github.io/pysenteishon
Te lo podes bajar, instalar, y chusemas el batch del que te hablo. También
podes chusmear
el contenido de la carpeta que extrae y ver que dentro de lib/nose cuanto
están instaladas
las dependencias (Flask, y no recuerdo que otros).
Esto fue lo que mejor me resultó, son varios pasos, no se si te sea lo más
conveniente. En mi
caso me deja tranquilo porque lo que hago es usar un interprete de Python
portable (el de
PortablePython) meterle adentro todo lo que necesito, lo comprimo, genero
un .exe desde el
archivo comprimido, y listo! En mi caso probé el mismo exe en Windows NT,
Windows XP
y Windows 8, y funcionó sin problemas, lo cual me dejó re contento jeje.
Saludos,
Emiliano.
--
_______________________________________________
http://listas.python.org.ar/listinfo/pyar
PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
--
*Matias E. Varela*
San Rafael, Mendoza
Blog: http://matuu.com.ar
Twitter: @matuvarela <http://twitter.com/matuvarela>
Skype: matu.varela
Leandro Brunner
2014-06-13 18:29:17 UTC
Permalink
Yo hice algo así, excepto que usé Tornado tanto para la web como para el
servidor.
Cree una pequeña aplicación en QT que mostrara una interfaz web y de ahí
la comunique con Python. Lo demás pan comido jajaja.

Saludos.
Leandro Brunner
Post by Emiliano Dalla Verde Marcozzi
Buenas lista! Tengo que crear un .exe que instale un proyecto django y
lo haga correr
en windows. Idealmente me gustaría poder embeber en el .exe algún
servidor http liviano,
el runserver de django también es una opción ya que el sistema lo van
a usar en una sola
máquina. Lo que más persigo, es que si se rompe la máquina, el cliente
con el .exe pueda
volver a instalar la app, copiar la sqlite que tenía backaupeada y que
salga andando
nuevamente.
Experiencias en esto?
Tendré que ponerme a escribir toda la app en PyQt? :P
Saludos y muchas gracias!
--
_______________________________________________
http://listas.python.org.ar/listinfo/pyar
PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar
Angel Java Lopez
2014-06-16 15:11:33 UTC
Permalink
Sin conocer Django, y el deployment de Python, leo:

"Lo que más persigo, es que si se rompe la máquina, el cliente con el .exe
pueda
volver a instalar la app, copiar la sqlite que tenía backaupeada y que
salga andando
nuevamente."

Entonces, por que un .exe? No podria ser un .zip, con todos los archivos,
descomprimirlos, copiar la base, lanzar un comando, y voila? Mi unica duda
es como poner ahi Python, para que no haya que instalarlo. Pero me imagino
que el .cmd (el comando) que lanza la aplicacion, podria agregar el
python.exe al PATH, y salir andando (desconozco que setear para que python
encuentre librerias, las encuentra en archivos relativos al python.exe?)

Si eso anda, luego se podria hacer un .exe del .zip

Nos leemos!

Angel "Java" Lopez
@ajlopez




2014-06-13 10:45 GMT-03:00 Emiliano Dalla Verde Marcozzi <
Post by Emiliano Dalla Verde Marcozzi
Buenas lista! Tengo que crear un .exe que instale un proyecto django y lo
haga correr
en windows. Idealmente me gustaría poder embeber en el .exe algún servidor
http liviano,
el runserver de django también es una opción ya que el sistema lo van a
usar en una sola
máquina. Lo que más persigo, es que si se rompe la máquina, el cliente con
el .exe pueda
volver a instalar la app, copiar la sqlite que tenía backaupeada y que
salga andando
nuevamente.
Experiencias en esto?
Tendré que ponerme a escribir toda la app en PyQt? :P
Saludos y muchas gracias!
--
_______________________________________________
http://listas.python.org.ar/listinfo/pyar
PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
Emiliano Dalla Verde Marcozzi
2014-06-16 15:31:51 UTC
Permalink
Post by Angel Java Lopez
"Lo que más persigo, es que si se rompe la máquina, el cliente con el
.exe pueda
volver a instalar la app, copiar la sqlite que tenía backaupeada y que
salga andando
nuevamente."
Entonces, por que un .exe? No podria ser un .zip, con todos los archivos,
descomprimirlos, copiar la base, lanzar un comando, y voila? Mi unica duda
es como poner ahi Python, para que no haya que instalarlo. Pero me imagino
que el .cmd (el comando) que lanza la aplicacion, podria agregar el
python.exe al PATH, y salir andando (desconozco que setear para que python
encuentre librerias, las encuentra en archivos relativos al python.exe?)
Si eso anda, luego se podria hacer un .exe del .zip
Nos leemos!
Angel "Java" Lopez
@ajlopez
Buenas Angel, gracias por tu respuesta y muy buena idea! (no caso una de
windows).
Creo se podría crear un .zip pero en que programo los pasos para que se
descomprima
en 'n' lugar, copiar la base, agregar al PATH de windows donde están las
cosas, etc?
Podes pasarme alguna doc y a donde tengo que apuntar los cañones para hacer
este
tipo de cosas?
Respecto de Python (en windows) se instala por default en: c:/Python27
y para que python encuentre las librerías, hay que agregar a la variable de
sistema PATH
la ruta: c:/Python27/Scripts y c:/Python27/lib/site-packages/
Podría pegarle una mirada a algo que se llama 'portable python':
http://portablepython.com/
pero parece querer matar un mosquito con un lanzallamas xD
Muchas gracias y saludos!
--
Broken code @ https://github.com/edvm

<edvm-+ZN9ApsXKcFd+***@public.gmane.org>
Angel Java Lopez
2014-06-16 16:19:29 UTC
Permalink
Bien, veamos

Primero, probaria de armar todo en un directorio para abajo. Digo, Que ese
directorio para abajo, tenga todo lo que necesite tu aplicacion. Lo
llamamos directorio de app, digamos

d:\superduperapp

Haria un archivo .cmd con los comandos para lanzar tu aplicacion
(algo sobre el shell de windows
http://en.wikibooks.org/wiki/Windows_Batch_Scripting no se cuan actualizado
esta)

ejemplo simple de d:\superduperapp\run.cmd

@echo off
set PATH=c:\python27;c:\python27\Scripts;%PATH%
python myapp.py

El tema que me imagino:
Tu aplicacion necesita paquetes de Python instalados. Y que recuerde, los
instala dentro de c:\python27 (en el caso que python.exe a usar por pip y
demas este ahi). Hay alguna forma de poner los paquetes que necesita tu
aplicacion DENTRO de d:\superduperapp y que el python los busque ahi?

Segundo tema: desligarse de tener el c:\python27. Que ya en tu directorio
de aplicacion este en algun directorio el python, junto con las librerias
que necesita.

Digamos

@echo off
set PATH=d:\superduperapp\python27;d:\superduperapp\python27\Scripts;%PATH%
python myapp.py

Si eso anda, toda tu aplicacion podria estar en un USB, ir a una maquina,
copiar todo el directorio en e:\pepito, ir al directorio ese, ejecutar
run.cmd y deberia salir con fritas. Para eso falta un paso mas. Desligar al
.cmd de arriba de usar explicitamente d:\superduperapp, hay una abreviatura
para el "usa el directorio donde esta el cmd" pero no la tengo ahora, tal
vez en el enlace de arriba que pase esta.

Por ejemplo, Vagrant usa Ruby. Y no lo instala, en Windows lo tiene adentro
como .exe en una carpeta de su instalacion. Debe haber algo asi en el mundo
Python. Dropbox como hace?

Si todo eso funciona, entonces pasaria a hacer un .exe como un .zip
autodescomprimible. No se que productos hay ahora asi, probaria WinZip a
ver si tiene esa opcion

Cualquier duda, aca estamos!

Nos leemos!

Angel "Java" Lopez
@ajlopez



2014-06-16 12:31 GMT-03:00 Emiliano Dalla Verde Marcozzi <
Post by Emiliano Dalla Verde Marcozzi
Post by Angel Java Lopez
"Lo que más persigo, es que si se rompe la máquina, el cliente con el
.exe pueda
volver a instalar la app, copiar la sqlite que tenía backaupeada y que
salga andando
nuevamente."
Entonces, por que un .exe? No podria ser un .zip, con todos los archivos,
descomprimirlos, copiar la base, lanzar un comando, y voila? Mi unica duda
es como poner ahi Python, para que no haya que instalarlo. Pero me imagino
que el .cmd (el comando) que lanza la aplicacion, podria agregar el
python.exe al PATH, y salir andando (desconozco que setear para que python
encuentre librerias, las encuentra en archivos relativos al python.exe?)
Si eso anda, luego se podria hacer un .exe del .zip
Nos leemos!
Angel "Java" Lopez
@ajlopez
Buenas Angel, gracias por tu respuesta y muy buena idea! (no caso una de
windows).
Creo se podría crear un .zip pero en que programo los pasos para que se
descomprima
en 'n' lugar, copiar la base, agregar al PATH de windows donde están las
cosas, etc?
Podes pasarme alguna doc y a donde tengo que apuntar los cañones para
hacer este
tipo de cosas?
Respecto de Python (en windows) se instala por default en: c:/Python27
y para que python encuentre las librerías, hay que agregar a la variable
de sistema PATH
la ruta: c:/Python27/Scripts y c:/Python27/lib/site-packages/
http://portablepython.com/
pero parece querer matar un mosquito con un lanzallamas xD
Muchas gracias y saludos!
--
_______________________________________________
http://listas.python.org.ar/listinfo/pyar
PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
Emiliano Dalla Verde Marcozzi
2014-06-16 16:39:35 UTC
Permalink
Post by Angel Java Lopez
Bien, veamos
Primero, probaria de armar todo en un directorio para abajo. Digo, Que ese
directorio para abajo, tenga todo lo que necesite tu aplicacion. Lo
llamamos directorio de app, digamos
d:\superduperapp
Haria un archivo .cmd con los comandos para lanzar tu aplicacion
(algo sobre el shell de windows
http://en.wikibooks.org/wiki/Windows_Batch_Scripting no se cuan
actualizado esta)
ejemplo simple de d:\superduperapp\run.cmd
@echo off
set PATH=c:\python27;c:\python27\Scripts;%PATH%
python myapp.py
Tu aplicacion necesita paquetes de Python instalados. Y que recuerde, los
instala dentro de c:\python27 (en el caso que python.exe a usar por pip y
demas este ahi). Hay alguna forma de poner los paquetes que necesita tu
aplicacion DENTRO de d:\superduperapp y que el python los busque ahi?
Sí! No se si funcionará, pero si pongo las librerias en el mismo lugar
donde está python.exe, debería encontrarlas. Y si esto no funciona, puedo
decirle a python "buscá acá" seteando la variable de entorno PYTHONPATH, ej:

@echo off
set PATH=c:\python27;c:\python27\Scripts;%PATH%
set PYTHONPATH=d:\superduperapp\dependencias\
python myapp.py
Post by Angel Java Lopez
Segundo tema: desligarse de tener el c:\python27. Que ya en tu directorio
de aplicacion este en algun directorio el python, junto con las librerias
que necesita.
Digamos
@echo off
set PATH=d:\superduperapp\python27;d:\superduperapp\python27\Scripts;%PATH%
python myapp.py
Buenísimo!
Post by Angel Java Lopez
Cualquier duda, aca estamos!
Nos leemos!
Angel "Java" Lopez
@ajlopez
Genial! Voy a probar estos pasos a ver que sale,
Muchas gracias!
--
Broken code @ https://github.com/edvm

<edvm-+ZN9ApsXKcFd+***@public.gmane.org>
Mariano Reingart
2014-06-16 17:04:33 UTC
Permalink
Hola Emiliano:

Podes ver los pasos para crear el instalador de web2py para windows.

http://www.web2pyslices.com/slice/show/1726/build-windows-binaries

El script en cuestion es setup_exe.py lo podes encontrar en las fuentes
(usa py2exe):

https://github.com/web2py/web2py/blob/master/extras/build_web2py/setup_exe.py

También hay un script alternativo que usa cxfreeze:

https://github.com/web2py/web2py/blob/master/scripts/standalone_exe_cxfreeze.py

Aca tenes un script externo similar a lo que querés hacer (si entendí bien):

http://bazaar.launchpad.net/~flavour/sahana-eden/trunk/view/head:/static/scripts/tools/standalone_exe.py

Si necesitas armar un instalador (no solo empaquetar), podes ver el
scripcito que arme con NSIS (NullSoft Installer) para el proyecto de
factura electrónica:

https://github.com/reingart/pyafipws/blob/master/nsis.py

Es una extensión a py2exe que te arma un ejecutable autoextraible, y se
puede configurar para registrar servicios, el programa en menu inicio, etc.:

https://code.google.com/p/pyafipws/source/browse/setup.py

Por cierto, py2exe no esta abandonado, hay actividad en el repositorio
(incluyendo soporte para python 3, versión tentativa 0.9.2.1):

http://sourceforge.net/p/py2exe/svn/HEAD/tree/trunk/

En mi caso probé otros (ppalmente PyInstaller) pero me quedo con py2exe que
es compatible con distutils y aunque no es tan automágico, me fue más fácil
de configurar, extender e incluir y excluir módulos (por ej., con
pyinstaller había que generar una especie de helpers para detectar los
imports "no tradicionales" que no lo pude hacer andar, si no recuerdo mal).
También está cxfreeze y bbfreeze (este último parece un reemplazo directo
para py2exe), pero no los he probado tanto.

Con django posiblemente tengas temas similares por lo que estas comentando,
con py2exe podrías incluir directamente los módulos si no te los detecta de
entrada (incluso algunos módulos de la stdlib no son tan obvios por lo que
generalmente no los detecta, como el tema de manejo de tipos mime en email,
bases de datos para shelve, etc., que tendrías que agregar manualmente) .

Espero que te sirva, cualquier cosa avisame

Sds

Mariano Reingart
http://www.sistemasagiles.com.ar
http://reingart.blogspot.com
Emiliano Dalla Verde Marcozzi
2014-06-16 17:54:41 UTC
Permalink
Post by Mariano Reingart
Podes ver los pasos para crear el instalador de web2py para windows.
http://www.web2pyslices.com/slice/show/1726/build-windows-binaries
Sds
Mariano Reingart
http://www.sistemasagiles.com.ar
http://reingart.blogspot.com
Alta info! Muchas gracias Mariano!
--
Broken code @ https://github.com/edvm

<edvm-+ZN9ApsXKcFd+***@public.gmane.org>
Angel Java Lopez
2014-06-16 18:24:45 UTC
Permalink
Agregaria:

- Tener el python27 en el directorio local de tu aplicacion, permite no
tener que instalarlo. Instalar python27 en Windows, es algo intrusivo, por
ejemplo, te puede pasar por encima de un Python3 que tengas (por lo menos
era asi en su tiempo, hace que todo .py se ejecute desde EL ULTIMO PYTHON
instalado, por mas PATH que pongas apuntando a la version que quieras; si
algun utilitario tuyo lanza directamente un programa.py en vez de hacer
python programa.py, fuiste, caiste en la trampa de los instaladores de
Windows).

- Desconozco cuanto problema es en python, pero tener las
librerias/paquetes directamente en el directorio de tu aplicacion a
instalar en cualquier maquina, permite trabajar sin tener que estar
conectado.

Friccion? Si, ver si lo que armas en un directorio, sirve en todos los
windows que tenes para usar. Tendras paquetes que dependan de win32 vs
64bits?

Pero desconozco si es lo mejor en esta situacion. Mirandolo de lejos, me
parece que es mas simple. Si funcionara, practicamente podrias instalar
cualquier cosa (preparar bien un directorio, xcopy a otra maquina, y voila)

Nos leemos!

Angel "Java" Lopez
@ajlopez
Post by Angel Java Lopez
Bien, veamos
Primero, probaria de armar todo en un directorio para abajo. Digo, Que ese
directorio para abajo, tenga todo lo que necesite tu aplicacion. Lo
llamamos directorio de app, digamos
d:\superduperapp
Haria un archivo .cmd con los comandos para lanzar tu aplicacion
(algo sobre el shell de windows
http://en.wikibooks.org/wiki/Windows_Batch_Scripting no se cuan
actualizado esta)
ejemplo simple de d:\superduperapp\run.cmd
@echo off
set PATH=c:\python27;c:\python27\Scripts;%PATH%
python myapp.py
Tu aplicacion necesita paquetes de Python instalados. Y que recuerde, los
instala dentro de c:\python27 (en el caso que python.exe a usar por pip y
demas este ahi). Hay alguna forma de poner los paquetes que necesita tu
aplicacion DENTRO de d:\superduperapp y que el python los busque ahi?
Segundo tema: desligarse de tener el c:\python27. Que ya en tu directorio
de aplicacion este en algun directorio el python, junto con las librerias
que necesita.
Digamos
@echo off
set PATH=d:\superduperapp\python27;d:\superduperapp\python27\Scripts;%PATH%
python myapp.py
Si eso anda, toda tu aplicacion podria estar en un USB, ir a una maquina,
copiar todo el directorio en e:\pepito, ir al directorio ese, ejecutar
run.cmd y deberia salir con fritas. Para eso falta un paso mas. Desligar al
.cmd de arriba de usar explicitamente d:\superduperapp, hay una abreviatura
para el "usa el directorio donde esta el cmd" pero no la tengo ahora, tal
vez en el enlace de arriba que pase esta.
Por ejemplo, Vagrant usa Ruby. Y no lo instala, en Windows lo tiene
adentro como .exe en una carpeta de su instalacion. Debe haber algo asi en
el mundo Python. Dropbox como hace?
Si todo eso funciona, entonces pasaria a hacer un .exe como un .zip
autodescomprimible. No se que productos hay ahora asi, probaria WinZip a
ver si tiene esa opcion
Cualquier duda, aca estamos!
Nos leemos!
Angel "Java" Lopez
@ajlopez
2014-06-16 12:31 GMT-03:00 Emiliano Dalla Verde Marcozzi <
Post by Emiliano Dalla Verde Marcozzi
Post by Angel Java Lopez
"Lo que más persigo, es que si se rompe la máquina, el cliente con el
.exe pueda
volver a instalar la app, copiar la sqlite que tenía backaupeada y que
salga andando
nuevamente."
Entonces, por que un .exe? No podria ser un .zip, con todos los
archivos, descomprimirlos, copiar la base, lanzar un comando, y voila? Mi
unica duda es como poner ahi Python, para que no haya que instalarlo. Pero
me imagino que el .cmd (el comando) que lanza la aplicacion, podria agregar
el python.exe al PATH, y salir andando (desconozco que setear para que
python encuentre librerias, las encuentra en archivos relativos al
python.exe?)
Si eso anda, luego se podria hacer un .exe del .zip
Nos leemos!
Angel "Java" Lopez
@ajlopez
Buenas Angel, gracias por tu respuesta y muy buena idea! (no caso una de
windows).
Creo se podría crear un .zip pero en que programo los pasos para que se
descomprima
en 'n' lugar, copiar la base, agregar al PATH de windows donde están las
cosas, etc?
Podes pasarme alguna doc y a donde tengo que apuntar los cañones para
hacer este
tipo de cosas?
Respecto de Python (en windows) se instala por default en: c:/Python27
y para que python encuentre las librerías, hay que agregar a la variable
de sistema PATH
la ruta: c:/Python27/Scripts y c:/Python27/lib/site-packages/
http://portablepython.com/
pero parece querer matar un mosquito con un lanzallamas xD
Muchas gracias y saludos!
--
_______________________________________________
http://listas.python.org.ar/listinfo/pyar
PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
Sebastián Seba
2014-06-17 13:38:34 UTC
Permalink
Claro, tanto Vagrant como Heroku Toolbelt, por ejemplo, instalan su propio
intérprete de Ruby. Hasta donde vi Dropbox instala su propio intérprete de
Python también.

Tal como comentó Angel, está el "problema" de las versiones de Python en
Windows, es decir, el orden de instalación es importante porque te
establece como predeterminada la última versión que instales. Pero eso se
puede solucionar usando "shebang-lines" [0]

La opción de crear un .zip / .rar / .7z autoextraíble es interesante pero
no quedaría tan automático, o sea, el usuario descomprime y va a tener que
buscar el ejecutable principal de la app.

Para que sea más automático el asunto y el usuario no tenga que hacer
tantos pasos lo que propone Mariano, que es usar py2exe y NSIS, está bueno.
Ya el instalador crearía el acceso directo en el Escritorio y "ready the
chicken" jaja.

Está interesante el thread. Lo vengo siguiendo con atención porque tal vez
me resulte útil en algún momento.

¡Saludos!

[0] https://docs.python.org/3/using/windows.html#shebang-lines
Matias Varela
2014-06-17 14:38:25 UTC
Permalink
Post by Sebastián Seba
Claro, tanto Vagrant como Heroku Toolbelt, por ejemplo, instalan su
propio intérprete de Ruby. Hasta donde vi Dropbox instala su propio
intérprete de Python también.
Tal como comentó Angel, está el "problema" de las versiones de Python
en Windows, es decir, el orden de instalación es importante porque te
establece como predeterminada la última versión que instales. Pero eso
se puede solucionar usando "shebang-lines" [0]
La opción de crear un .zip / .rar / .7z autoextraíble es interesante
pero no quedaría tan automático, o sea, el usuario descomprime y va a
tener que buscar el ejecutable principal de la app.
Para que sea más automático el asunto y el usuario no tenga que hacer
tantos pasos lo que propone Mariano, que es usar py2exe y NSIS, está
bueno. Ya el instalador crearía el acceso directo en el Escritorio y
"ready the chicken" jaja.
Está interesante el thread. Lo vengo siguiendo con atención porque tal
vez me resulte útil en algún momento.
¡Saludos!
[0] https://docs.python.org/3/using/windows.html#shebang-lines
_______________________________________________
http://listas.python.org.ar/listinfo/pyar
PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar
Otra opción disponible es utilizar el visual studio 2010. En esta
versión (y en anteriores) podes crear un proyecto de instalación, el
cual ubica los archivos en la carpeta que indiques y crear el menú de
inicio y el link en el escritorio. Lo he utilizado para proyectos en
winforms (puagg :-( ) y funciona. Lamentablemente necesitas un Windows
para correrlo. Si puedo esta tarde lo pruebo y te comento si funciona.
Del lado de linux he utilizado cxfreeze con éxito instalando una
aplicación en pyQt. Tuve que meter archivos a mano a algunos
directorios, por lo que si las dependencias no se detectaran, con un
poco de laburo podés incluir todo (creo jeje).
Saludos
--
*Matias E. Varela*
San Rafael, Mendoza
Juan Carlos
2014-06-17 18:13:47 UTC
Permalink
Post by Sebastián Seba
Claro, tanto Vagrant como Heroku Toolbelt, por ejemplo, instalan su propio
intérprete de Ruby. Hasta donde vi Dropbox instala su propio intérprete de
Python también.
Blender hace lo mismo con Python3, copia todo en una carpeta,y usa eso como
interprete.



La opción de crear un .zip / .rar / .7z autoextraíble es interesante pero
Post by Sebastián Seba
no quedaría tan automático, o sea, el usuario descomprime y va a tener que
buscar el ejecutable principal de la app.
Hay que ver como es el ambiente y el software...,
pero si armas un modulo importable y lo zipeas, Python puede importar ZIP
comprimidos.
david weil
2014-06-16 18:08:56 UTC
Permalink
Hola!

2014-06-16 12:31 GMT-03:00 Emiliano Dalla Verde Marcozzi <
Post by Emiliano Dalla Verde Marcozzi
Creo se podría crear un .zip pero en que programo los pasos para que se
descomprima
en 'n' lugar, copiar la base, agregar al PATH de windows donde están las
cosas, etc?
Respecto de Python (en windows) se instala por default en: c:/Python27
Post by Emiliano Dalla Verde Marcozzi
y para que python encuentre las librerías, hay que agregar a la variable
de sistema PATH
la ruta: c:/Python27/Scripts y c:/Python27/lib/site-packages/
Sí, pero necesitas agregar vos al path esos dirs al path? digo, yo antes de
copiar (o descomprimir) todo python a un dir, ejecutaría el instalador que
ya hace todo eso por uno.
Después, lo que podés hacer por ejemplo, es hacerte un wheel (antes un
bundle) de pip (?es de pip?) para instalar encima de python todo tu soft.
Entonces, no tenés que programar mucho:
install.bat:
setup_de_tu_python_preferido.exe /q
pip install tu_soft.pybundle (o wheel o lo que sea)

Después, para no seguir programando en bats, hay un toolcito python a-la
make, pero mas python, que se llama do-it, que está bastante piola para
especificar tareas y dependencias..

Ojalá te sirva todo eso!
--
There is no dark side of the moon really. Matter of fact it's all dark.
Loading...