[pyar] Resumen de pyar, Vol 98, Envío 8

Luis Andraschnik luis.andraschnik en gmail.com
Mie Abr 4 11:21:00 -03 2018


Ojo supervisor sólo funciona en *nix. En cuanto a Nginx para una red local
no hace falta tanto,  el WSGI también hace la función de servir páginas
estáticas además de la app python.

Desconozco si uWSGI funciona standalone (sin Nginx) y además en Windows. Yo
no soy de sistemas y tengo que buscar soluciones simples. En cuanto al WSGI
de  Cherrypy funciona bárbaro y está garantizado para uso en producción. si
tuviera que darle acceso desde interner le agregaria Nginx por supuesto.
Saludos!

El 4 de abril de 2018, 10:14, Marce Romagnoli <marce.romagnoli en gmail.com>
escribió:

> Yo he usado Flask con Nginx + uWSGI y Supervisor
>
> *Marcelo Romagnoli*
>
> El 3 de abril de 2018, 22:17, <pyar-request en python.org.ar> escribió:
>
>> Envíe los mensajes para la lista pyar a
>>         pyar en python.org.ar
>>
>> Para subscribirse o anular su subscripción a través de la WEB
>>         http://listas.python.org.ar/listinfo/pyar
>>
>> O por correo electrónico, enviando un mensaje con el texto "help" en
>> el asunto (subject) o en el cuerpo a:
>>         pyar-request en python.org.ar
>>
>> Puede contactar con el responsable de la lista escribiendo a:
>>         pyar-owner en python.org.ar
>>
>> Si responde a algún contenido de este mensaje, por favor, edite la
>> linea del asunto (subject) para que el texto sea mas especifico que:
>> "Re: Contents of pyar digest...". Además, por favor, incluya en la
>> respuesta sólo aquellas partes del mensaje a las que está
>> respondiendo.
>>
>>
>> Asuntos del día:
>>
>>    1. Re: WSGI para Flask en Windows (Luis Andraschnik)
>>
>>
>> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Tue, 3 Apr 2018 22:17:45 -0300
>> From: Luis Andraschnik <luis.andraschnik en gmail.com>
>> To: Python Argentina <pyar en python.org.ar>
>> Subject: Re: [pyar] WSGI para Flask en Windows
>> Message-ID:
>>         <CADfL_z1J27e0D30tdfzwX_uh0w-jhbCCuW2xaWfA6dYBB9i8eg en mail.gm
>> ail.com>
>> Content-Type: text/plain; charset="utf-8"
>>
>> Hola
>>
>> No sé casi nada de Docker, pero pienso que no elimina el fallo , sólo
>> ocurriría dentro del contenedor, ya que el problema es incompatibilidad
>> del
>> backend tcl por defecto de matplotlib con un wsgi multi-thread.
>>
>> Saludos!
>> Luis
>>
>> El mar., 3 de abr. de 2018 18:18, Juan Francisco Mosquera <
>> juan.francisco.mosquera en gmail.com> escribió:
>>
>> > otra opcion podria ser docker amigo , eso eliminaria muchos problemas.
>> > creas tu container y abres los puertos a tus usuarios.
>> >
>> >
>> > *Student Master of Science in Computer Science  *Juan Francisco Mosquera
>> > Maharishi University of Management
>> > 3168101369
>> > skype:juan.francisco.mosquera
>> >
>> >
>> > El 3 de abril de 2018, 12:31, Luis Andraschnik<luis.andraschnik en g
>> mail.com>
>> > escribió:
>> >
>> >> Solución Final y Reflexiones:
>> >>
>> >> Para eliminar la falla era neceario cambiar el backend de matplotlib.
>> >> Espero que le pueda servir a otros si les aparec un error
>> >>
>> >>
>> >>
>> >> *Tcl_AsyncDelete: async handler deleted by the wrong thread*
>> >> Reflexiones finales:
>> >>
>> >> 1) Usar Flask con el servidor WSGI de Cherrypy en Windows es muy
>> sencillo
>> >>
>> >> 2) Si les aparece el error Tcl_AsyncDelete: async handler deleted by
>> the
>> >> wrong thread
>> >> , puede estar ocasionado por matplotlib entonces hay que colocar la
>> >> siguiente línea *matplotlib.use("agg") INMEDIATAMENTE* después de
>> >> importar matplotlib y antes de importar cualquier otro módulo de
>> matplotlib
>> >> como bien lo dice el siguiente warning que me dejó impresionado:
>> >>
>> >> $ python launcher_cherry.py
>> >> C:\Users\lims\AppData\Local\Programs\Python\Python35-32\
>> >> lib\site-packages\matplotlib\__init__.py:1350: UserWarning:  This call
>> >> to matplotlib.use() has no effect
>> >> because the backend has already been chosen;
>> >> matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
>> >> or matplotlib.backends is imported for the first time.
>> >>
>> >> 3) No sé como hacían los programadores del pasado antes de existir
>> google
>> >>
>> >> 4) A veces el sólo hecho de postear dispara ideas para solucionar un
>> >> problema aunque no tengas la respuesta que buscabas!
>> >>
>> >> Saludos!
>> >> Luis
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> El 3 de abril de 2018, 13:49, Luis Andraschnik <
>> >> luis.andraschnik en gmail.com> escribió:
>> >>
>> >>> Parece que el problema está en matplotlib, pero con el servidor de
>> >>> desarrollo de Flask no tengo problemas.
>> >>> Matplolib lo uso para generar gráficos que codifico en Base 64 y los
>> >>> renderizo con html, no debería generar problemas ...
>> >>>
>> >>> Mejor pruebo otro WSGI , voy a leer lo de Fast CGi
>> >>> Saludos!
>> >>>
>> >>>
>> >>>
>> >>> El 3 de abril de 2018, 13:34, Luis Andraschnik <
>> >>> luis.andraschnik en gmail.com> escribió:
>> >>>
>> >>>> Actualización de último momento: La falla ocurre aunque no haga nada
>> >>>> prohibido
>> >>>>
>> >>>> $ python launcher_cherry.py
>> >>>> [03/Apr/2018:13:30:30] ENGINE Bus STARTING
>> >>>> [03/Apr/2018:13:30:30] ENGINE Started monitor thread 'Autoreloader'.
>> >>>> [03/Apr/2018:13:30:30] ENGINE Started monitor thread
>> '_TimeoutMonitor'.
>> >>>> [03/Apr/2018:13:30:30] ENGINE Serving on http://0.0.0.0:5000
>> >>>> [03/Apr/2018:13:30:30] ENGINE Bus STARTED
>> >>>> 127.0.0.1 - - [03/Apr/2018:13:30:33 -0300] "GET / HTTP/1.1" 200 2660
>> "
>> >>>> http://localhost:5000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64;
>> >>>> rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>> 127.0.0.1 - - [03/Apr/2018:13:30:33 -0300] "GET /static/basic.css
>> >>>> HTTP/1.1" 200 410 "http://localhost:5000/" "Mozilla/5.0 (Windows NT
>> >>>> 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>> 127.0.0.1 - - [03/Apr/2018:13:30:33 -0300] "GET /static/navbar.css
>> >>>> HTTP/1.1" 200 566 "http://localhost:5000/" "Mozilla/5.0 (Windows NT
>> >>>> 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>> 127.0.0.1 - - [03/Apr/2018:13:30:34 -0300] "GET /static/fondo.jpg
>> >>>> HTTP/1.1" 304 - "http://localhost:5000/" "Mozilla/5.0 (Windows NT
>> >>>> 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>> 127.0.0.1 - - [03/Apr/2018:13:30:35 -0300] "GET /gasoil HTTP/1.1" 200
>> >>>> 11507 "http://localhost:5000/" "Mozilla/5.0 (Windows NT 10.0; Win64;
>> >>>> x64; rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>> 127.0.0.1 - - [03/Apr/2018:13:30:35 -0300] "GET /static/basic.css
>> >>>> HTTP/1.1" 200 410 "http://localhost:5000/gasoil" "Mozilla/5.0
>> (Windows
>> >>>> NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>> 127.0.0.1 - - [03/Apr/2018:13:30:35 -0300] "GET /static/navbar.css
>> >>>> HTTP/1.1" 200 566 "http://localhost:5000/gasoil" "Mozilla/5.0
>> (Windows
>> >>>> NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>> 127.0.0.1 - - [03/Apr/2018:13:30:37 -0300] "POST /gasoil HTTP/1.1"
>> 200
>> >>>> 315115 "http://localhost:5000/gasoil" "Mozilla/5.0 (Windows NT 10.0;
>> >>>> Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>> 127.0.0.1 - - [03/Apr/2018:13:30:40 -0300] "GET /static/basic.css
>> >>>> HTTP/1.1" 200 410 "http://localhost:5000/gasoil" "Mozilla/5.0
>> (Windows
>> >>>> NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>> 127.0.0.1 - - [03/Apr/2018:13:30:40 -0300] "GET /static/navbar.css
>> >>>> HTTP/1.1" 200 566 "http://localhost:5000/gasoil" "Mozilla/5.0
>> (Windows
>> >>>> NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>> 127.0.0.1 - - [03/Apr/2018:13:30:51 -0300] "GET /fueloil HTTP/1.1"
>> 200
>> >>>> 4809 "http://localhost:5000/gasoil" "Mozilla/5.0 (Windows NT 10.0;
>> >>>> Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>> 127.0.0.1 - - [03/Apr/2018:13:30:53 -0300] "POST /fueloil HTTP/1.1"
>> 200
>> >>>> 6252 "http://localhost:5000/fueloil" "Mozilla/5.0 (Windows NT 10.0;
>> >>>> Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>> 127.0.0.1 - - [03/Apr/2018:13:30:53 -0300] "GET /static/basic.css
>> >>>> HTTP/1.1" 200 410 "http://localhost:5000/fueloil" "Mozilla/5.0
>> >>>> (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>> 127.0.0.1 - - [03/Apr/2018:13:30:53 -0300] "GET /static/navbar.css
>> >>>> HTTP/1.1" 200 566 "http://localhost:5000/fueloil" "Mozilla/5.0
>> >>>> (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>> 127.0.0.1 - - [03/Apr/2018:13:30:54 -0300] "POST /fueloil HTTP/1.1"
>> 200
>> >>>> 6252 "http://localhost:5000/fueloil" "Mozilla/5.0 (Windows NT 10.0;
>> >>>> Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>> 127.0.0.1 - - [03/Apr/2018:13:30:55 -0300] "POST /fueloil HTTP/1.1"
>> 200
>> >>>> 6252 "http://localhost:5000/fueloil" "Mozilla/5.0 (Windows NT 10.0;
>> >>>> Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>> 127.0.0.1 - - [03/Apr/2018:13:30:56 -0300] "POST /fueloil HTTP/1.1"
>> 200
>> >>>> 6252 "http://localhost:5000/fueloil" "Mozilla/5.0 (Windows NT 10.0;
>> >>>> Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>> 127.0.0.1 - - [03/Apr/2018:13:30:56 -0300] "POST /fueloil HTTP/1.1"
>> 200
>> >>>> 6252 "http://localhost:5000/fueloil" "Mozilla/5.0 (Windows NT 10.0;
>> >>>> Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>> 127.0.0.1 - - [03/Apr/2018:13:30:57 -0300] "POST /fueloil HTTP/1.1"
>> 200
>> >>>> 6252 "http://localhost:5000/fueloil" "Mozilla/5.0 (Windows NT 10.0;
>> >>>> Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>>
>> >>>> *Tcl_AsyncDelete: async handler deleted by the wrong thread*
>> >>>>
>> >>>>
>> >>>> El 3 de abril de 2018, 13:27, Luis Andraschnik <
>> >>>> luis.andraschnik en gmail.com> escribió:
>> >>>>
>> >>>>> Hola Ricardo
>> >>>>>
>> >>>>> Ya encargué una Rpi para este uso, mientras tanto quería ver que
>> puedo
>> >>>>> hacer en Windows. Probé usar el WSGI de Cherrypy, que vuela, pero si
>> >>>>> introduzco datos que generen una operación prohibida, como
>> logaritmos de
>> >>>>> números negativos (mi app no está muy pulida), genero un Server
>> internal
>> >>>>> error que no puede recuperarse. Bajo linux con Gunicorn se la
>> bancaba, así
>> >>>>> que no sé que tan estable sea Cherrypy wsgi server en Windows:
>> >>>>>
>> >>>>> *ValueError: math domain error*
>> >>>>> 127.0.0.1 - - [03/Apr/2018:13:14:45 -0300] "POST /fueloil HTTP/1.1"
>> >>>>> 500 291 "http://localhost:5000/fueloil" "Mozilla/5.0 (Windows NT
>> >>>>> 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
>> >>>>> 127.0.0.1 - - [03/Apr/2018:13:14:48 -0300] "GET / HTTP/1.1" 200
>> 2660 "
>> >>>>> http://localhost:5000/fueloil" "Mozilla/5.0 (Windows NT 10.0;
>> Win64;
>> >>>>> x64; rv:59.0)
>> >>>>>
>> >>>>>
>> >>>>> *Tcl_AsyncDelete: async handler deleted by the wrong thread*
>> >>>>>
>> >>>>>
>> >>>>> Usé el siguiente script como lanzador (basado en
>> >>>>> http://fgimian.github.io/blog/2012/12/08/setting-up-a-rock-
>> >>>>> solid-python-development-web-server/ )
>> >>>>>
>> >>>>> import cherrypy
>> >>>>>
>> >>>>> from *my_aplicacion_flask* import app
>> >>>>> from paste.translogger import TransLogger
>> >>>>>
>> >>>>>
>> >>>>> def run_server():
>> >>>>>     # Enable WSGI access logging via Paste
>> >>>>>     app_logged = TransLogger(app)
>> >>>>>
>> >>>>>     # Mount the WSGI callable object (app) on the root directory
>> >>>>>     cherrypy.tree.graft(app_logged, '/')
>> >>>>>
>> >>>>>     # Set the configuration of the web server
>> >>>>>     cherrypy.config.update({
>> >>>>>         'engine.autoreload_on': True,
>> >>>>>         'log.screen': True,
>> >>>>>         'server.socket_port': 5000,
>> >>>>>         'server.socket_host': '0.0.0.0'
>> >>>>>     })
>> >>>>>
>> >>>>>     # Start the CherryPy WSGI web server
>> >>>>>     cherrypy.engine.start()
>> >>>>>     cherrypy.engine.block()
>> >>>>>
>> >>>>> if __name__ == "__main__":
>> >>>>>     run_server()
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> El 3 de abril de 2018, 13:00, Ricardo Daniel Quiroga <
>> >>>>> l2radamanthys en gmail.com> escribió:
>> >>>>>
>> >>>>>> Lo que te recomiendo es no hacer deploy sobre windows vas a sufrir
>> y
>> >>>>>> mucho, de ultima consigue una raspberry y que corra ahi. Pero bueno
>> >>>>>> si sos masoquista [1]
>> >>>>>>
>> >>>>>> [1]- https://medium.com/@bilalbayasut/deploying-python-
>> >>>>>> web-app-flask-in-windows-server-iis-using-fastcgi-6c1873ae0ad8
>> >>>>>>
>> >>>>>> El 3 de abril de 2018, 12:52, pedro cabrera <pedrom9632 en gmail.com>
>> >>>>>> escribió:
>> >>>>>>
>> >>>>>>> Buenos dias
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> Te recomiendo Nginx, espero que te sirva para lo que necesitas
>> >>>>>>>
>> >>>>>>> El 3 de abril de 2018, 10:46, Luis Andraschnik <
>> >>>>>>> luis.andraschnik en gmail.com> escribió:
>> >>>>>>>
>> >>>>>>>> Buen día Grupo
>> >>>>>>>>
>> >>>>>>>> Quise correr una aplicación flask en Windows con Gunicorn y me
>> >>>>>>>> enteré que no funciona (ni en Cygwin). ¿Qué puedo usar como
>> Python WSGI?
>> >>>>>>>>
>> >>>>>>>> Es para correr una app Flask en una red Local, en Windows, algo
>> que
>> >>>>>>>> sea tan sencillo de implementar como Gunicorn y para no usar el
>> servidor de
>> >>>>>>>> desarrollo que es muy precario para "producción".
>> >>>>>>>>
>> >>>>>>>> Muchas gracias!
>> >>>>>>>> Luis
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source
>> =link&utm_campaign=sig-email&utm_content=webmail> Libre
>> >>>>>>>> de virus. www.avast.com
>> >>>>>>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source
>> =link&utm_campaign=sig-email&utm_content=webmail>
>> >>>>>>>> <#m_3861243366002773094_m_8047296070565957504_m_522240611935
>> 1505010_m_-6140250891213148714_m_1953250168677521534_m_18487
>> 59174362256851_m_-1683613568499855731_m_5998710374036844608_
>> m_7228297523808588929_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>> >>>>>>>>
>> >>>>>>>> _______________________________________________
>> >>>>>>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> >>>>>>>> Sitio web: http://www.python.org.ar/
>> >>>>>>>>
>> >>>>>>>> Para administrar la lista (o desuscribirse) entrar a
>> >>>>>>>> http://listas.python.org.ar/listinfo/pyar
>> >>>>>>>>
>> >>>>>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software
>> Libre
>> >>>>>>>> de Argentina - http://www.usla.org.ar
>> >>>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> _______________________________________________
>> >>>>>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> >>>>>>> Sitio web: http://www.python.org.ar/
>> >>>>>>>
>> >>>>>>> Para administrar la lista (o desuscribirse) entrar a
>> >>>>>>> http://listas.python.org.ar/listinfo/pyar
>> >>>>>>>
>> >>>>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software
>> Libre
>> >>>>>>> de Argentina - http://www.usla.org.ar
>> >>>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> --
>> >>>>>>
>> >>>>>> Ricardo Daniel Quiroga
>> >>>>>>
>> >>>>>>
>> >>>>>> _______________________________________________
>> >>>>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> >>>>>> Sitio web: http://www.python.org.ar/
>> >>>>>>
>> >>>>>> Para administrar la lista (o desuscribirse) entrar a
>> >>>>>> http://listas.python.org.ar/listinfo/pyar
>> >>>>>>
>> >>>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre
>> >>>>>> de Argentina - http://www.usla.org.ar
>> >>>>>>
>> >>>>>
>> >>>>>
>> >>>>
>> >>>
>> >>
>> >> _______________________________________________
>> >> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> >> Sitio web: http://www.python.org.ar/
>> >>
>> >> Para administrar la lista (o desuscribirse) entrar a
>> >> http://listas.python.org.ar/listinfo/pyar
>> >>
>> >> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> >> Argentina - http://www.usla.org.ar
>> >>
>> >
>> > _______________________________________________
>> > Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> > Sitio web: http://www.python.org.ar/
>> >
>> > Para administrar la lista (o desuscribirse) entrar a
>> > http://listas.python.org.ar/listinfo/pyar
>> >
>> > La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> > Argentina - http://www.usla.org.ar
>> ------------ próxima parte ------------
>> Se ha borrado un adjunto en formato HTML...
>> URL: <http://listas.python.org.ar/pipermail/pyar/attachments/2018
>> 0403/c371d23e/attachment.html>
>>
>> ------------------------------
>>
>> Subject: Pié de página del digest
>>
>> _______________________________________________
>> pyar mailing list
>> pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>>
>> ------------------------------
>>
>> Fin de Resumen de pyar, Vol 98, Envío 8
>> ****************************************
>>
>
>
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180404/62e9a78b/attachment-0001.html>


Más información sobre la lista de distribución pyar