[pyar] WSGI para Flask en Windows

Juan Francisco Mosquera juan.francisco.mosquera en gmail.com
Mar Abr 3 18:17:24 -03 2018


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 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-s
>>>> olid-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-fl
>>>>> ask-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_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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180403/a6beb3df/attachment-0001.html>


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