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

Marce Romagnoli marce.romagnoli en gmail.com
Mie Abr 4 10:14:42 -03 2018


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.
> gmail.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@
> gmail.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_
> 5222406119351505010_m_-6140250891213148714_m_1953250168677521534_m_
> 1848759174362256851_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/
> 20180403/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
> ****************************************
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180404/9b8e81a9/attachment-0001.html>


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