Esto está relacionado con las cosas que discutimos en PyCon.
wip. planeado para R18.
Alguna actualización sobre eso:
HACER:
manejar el inicio / parada / reinicio del servicio para usar gunicorn como un servicio completo de Windows. Está reemplazando de alguna manera el uso de señales en Unix.
el soporte finalmente ocurrirá en R20 . Crearé el nuevo RP para realizar un seguimiento del desarrollo de esta función la próxima semana.
Las cosas para arreglar son:
¿Cuál es el progreso en la adición de soporte de Windows para gunicorn ?. O mejor dicho, ¿A qué distancia estás de R20 ? Tengo el mismo problema que el n. ° 587
Progreso lento. Quiero lanzar R19 con el trabajo roscado ahora. Publicaré una versión el lunes. el soporte de Windows llegará inmediatamente después.
¿Esta versión compatible con Windows está disponible en algún lugar?
El soporte de Windows estará en R20, así que supongo que pasará un tiempo hasta que guincorn tenga soporte para Windows ... Creé una máquina virtual con Ubuntu, y esto funciona para mí ...
Solo tengo curiosidad por saber algún progreso en esto. Como primer paso, ni siquiera necesita ser rápido; una gran ventaja será poder desarrollar con Gunicorn en Windows y enviarlo a un servidor Linux (por ejemplo, Heroku) sin cambiar la configuración.
@robertlagrant está en mi tarea. Primero necesito encontrar una licencia de Windows. R20 se lanzará en octubre,
¿Qué hay de las imágenes de VM en modern.ie? Esos son gratis y legales
El 22 de septiembre de 2014 a las 3:30 p.m., "Benoit Chesneau" [email protected] escribió:
@robertlagrant https://github.com/robertlagrant está en mi tarea hasta
el final del año. Primero necesito encontrar una licencia de Windows.-
Responda a este correo electrónico directamente o véalo en GitHub
https://github.com/benoitc/gunicorn/issues/524#issuecomment -56372470.
Usé imágenes de modern.ie para probar una aplicación web en IE8 recientemente. Fácil de poner en marcha y funcionó muy bien.
@benoitc Si es necesario, creo que el PSF puede proporcionarle una licencia de Windows.
@benoitc ¿hay una rama WIP para esto? No soy un usuario de Windows, pero puedo echarle un vistazo a esto.
@berkerpeksag no todavía no: / deberíamos empezar uno lo antes posible.
como @cyberdelia dijo que podríamos pedir una licencia de ventanas en el PSF que el proyecto gunicorn podría usar para tal desarrollo. ¿Pensamientos?
Es una buena idea. https://www.python.org/psf/grants/ tiene toda la información sobre propuestas de subvenciones.
¿Alguna actualización sobre esto?
También estoy buscando actualizaciones para esto.
@berkerpeksag hablemos lo antes posible sobre IRC, solo hazme ping a veces antes, ya que estoy lejos de cualquier cosa instantánea en estos días :)
@benoitc ¿ alguna actualización sobre este?
@lealhugui , hasta donde yo sé, no ha habido ningún progreso desde entonces. De todos modos vine con un plan:
Puedo esperar un lanzamiento a veces en marzo. Posiblemente antes, pero sin promesas :) El trabajo, por supuesto, puede ir más rápido si alguien que realmente conoce Windows mejor que yo (pista que no usé Windows desde 1995 ...) ¡puede ayudar!
@benoitc después de mediados de enero, puedo ayudar (básicamente pruebas, o cualquier cosa que necesite y podría ayudar).
@lealhugui gracias! Proporcionaré actualizaciones lo antes posible
Espero que las cosas vayan bien. ¿Seguimos siendo buenos con este lanzamiento en marzo?
@tannaalok poco probable. Con suerte, @benoitc puede publicar el trabajo de IPC y entonces tal vez sea posible el soporte de Windows. Tomará algún tiempo para que el trabajo de IPC aterrice, luego el resto del trabajo de Windows será descubierto, evaluado y trabajado. Es muy difícil de decir.
@tilgovi, el trabajo de IPC aterrizará en una sucursal a veces la semana que viene finalmente :)
Ahora sobre la versión de Windows, aquí está el plan que tengo en mente. Lo primero que debe hacer sería conectar Gunicorn a un CI de Windows para comenzar a notar problemas. Entonces hay 2 escenarios, ejecutar gunicorn en cygwin o ejecutar gunicorn en ventanas simples. Los dos pueden desencadenar resultados diferentes y deben probarse. Hasta donde yo sé, las cosas para hacer que Gunicorn sea portátil son las siguientes:
¿Yo me perdí algo? Cualquier ayuda es bienvenida, yo mismo no soy un usuario diario de Windows. ¡Así que cualquier persona con experiencia en Windows que quiera tomar la iniciativa en esa parte para hacer de la plataforma de Windows un primer ciudadano en Gunicorn es bienvenida!
Python 3.5 agrega una característica útil para manejar señales en Windows: signal.set_wakeup_fd () ahora acepta un identificador de socket en Windows.
https://docs.python.org/dev/library/signal.html#signal.set_wakeup_fd
como @cyberdelia dijo que podríamos pedir una licencia de windows en el PSF
Microsoft ofrece licencias MSDN gratuitas para desarrolladores centrales de Python. Por ejemplo, como desarrollador principal, tengo acceso a Visual Studio 2015.
@haypo gracias. En realidad, eso también podría usarse para despertar al árbitro en Unix también ... Muy útil.
Si un desarrollador central puede ayudar, entonces será útil :) ¿Alguna idea sobre cómo solicitar uno cuando se trata de un proyecto externo?
También tiene WSL (Windows para Linux) para apuntar a la capacidad de Windows
¿Hay alguna forma de que una persona con conocimientos limitados de Linux y Gunicorn pueda ayudar a portar esto a Windows, o los problemas no son triviales?
¿Por qué está cerrado este problema? No encuentro información sobre cómo trabajar en Windows
Este problema aún está abierto.
@DominikDitoIvosevic todavía está abierto. A veces ofreceré algún tipo de hoja de ruta esta semana.
Me encontré con una lectura de compatibilidad hoy. Estaba mirando mi trabajo en el n. ° 1310. Manejé FD_CLOEXEC de manera diferente a como lo hacen las bibliotecas de systemd C. Eso me llevó a PEP 446 , pensando en el comportamiento de fork
y recordando que no hay fork
en Windows.
Para comenzar, aquí hay algunas cosas que necesitamos en la hoja de ruta:
os.fork
, probablemente con multiprocessing.Process
WorkerTemp
con multiprocessing.Pipe
Atascado con Windows en el trabajo, esto realmente me ayudaría. ¡Esperando mucho esta característica!
Reconozco que esto puede no ser una respuesta, pero encuentro que la camarera es realmente buena para
Windows.
2016-08-08 22:39 GMT + 03: 00 hirolau [email protected] :
Atascado con Windows en el trabajo, esto realmente me ayudaría. Muy anticipado
¡Esta característica!-
Estás recibiendo esto porque estás suscrito a este hilo.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/benoitc/gunicorn/issues/524#issuecomment -238351654,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AALnfBAXBrmPlU1JPx6RXI0vFQPLmBlyks5qd4XhgaJpZM4AnyCw
.
Atentamente,
Gleb
@ chester89, esto seguramente no es realmente apropiado allí ....
@hirolau Acabo de obtener una licencia de desarrollador de MSDN el mes pasado para poder probarla fácilmente en Windows. Con suerte, @berkerpeksag podrá ayudar con las pruebas. Elaboraré un plan para asegurarnos de tenerlo disponible a veces el próximo mes :)
@benoitc - ¡golpe desvergonzado!
Por lo general, uso Windows, por lo que el trabajo de gunicorn en Windows será muy apreciado. Gracias !
¿Tienes algún plan para cuando estará listo?
¿Alguna noticia sobre esto? nos vemos obligados a utilizar Windows en producción. Si el trabajo se ha estancado, ¿podría compartir el borrador del plan? ¡salud!
@cmorgan La misma situación aquí. ¿Alguien tiene actualizaciones sobre este tema?
@benoitc alguna noticia sobre esto?
Hola, todos
¿Alguna noticia sobre esto?
Estoy seguro de que se agregarán actualizaciones al problema. No es necesario solicitar actualizaciones.
Hola a todos,
Lamento no haber respondido antes. He estado bastante ocupado estos días. Así que parece que hay mucha gente esperando esta función, ya es hora de hacerla. Yo redactaré un plan el domingo al respecto y haré para encontrar una manera de hacerlo realidad :)
Creo que dividir esto en tareas más pequeñas y procesables podría ser la mejor manera de avanzar.
Como tal, he presentado # 1467 para la parte "configurar CI" con PR # 1468 para agregar una configuración de AppVeyor. Aquí se puede ver un ejemplo de ejecución de prueba:
https://ci.appveyor.com/project/edmorley/gunicorn/build/windows-ci.18
Además de los cambios más importantes mencionados en comentarios anteriores (señales, IPC del trabajador, manejo de la falta de bifurcación, etc.), lo siguiente debe resolverse antes de que las pruebas se ejecuten:
ImportError: No module named fcntl
( fcntl.fcntl () es usado por close_on_exec () y set_non_blocking () )ImportError: No module named grp
( grp.getgrnam () es usado por validate_group () )ImportError: No module named pwd
( pwd.getpwnam () es usado por validate_user () )ImportError: No module named resource
( resource.getrlimit () es usado por get_maxfd () , aunque ese método parece no usado; abrí # 1469 para eliminarlo)AttributeError: 'module' object has no attribute 'AF_UNIX'
(lo usa el atributo FAMILY
class en UnixSocket )AttributeError: 'module' object has no attribute 'geteuid'
( os.geteuid () es usado por el valor predeterminado de la configuración del usuario )AttributeError: 'module' object has no attribute 'getegid'
( os.getegid () es usado por el valor predeterminado de la configuración del Grupo )@edmorley gracias, lo
¿Cuándo puedo respetar esta función?? Este problema comenzó hace unos cuatro años。
Hola,
También estamos buscando tener esta funcionalidad, ¿tenemos alguna idea de cuándo podría comenzar a suceder?
Hola, ¿cuándo se manejará esto? :)
Si alguien quiere ayudar, abordar cualquiera de los problemas que @edmorley ha encontrado serían PR útiles.
Tenga en cuenta que algunas cosas pueden cambiar más drásticamente para que esto sea posible.
No hay una línea de tiempo para esto en este momento. Si desea ayudar, IRC podría ser el mejor lugar para conversar sobre ello o abrir problemas más pequeños para elementos de trabajo individuales.
Suscríbase a este número si desea recibir una notificación sobre el progreso. En este momento no hay una línea de tiempo.
FWIW, Gunicorn funciona en Cygwin en Windows. Sé que no es de gran ayuda, pero ahí está ...
@Zorlin No puedo hacer que funcione con Cygwin en Windows. Intenté hacer el ejemplo de la documentación oficial.
$ pip install gunicorn
$ cat myapp.py
def app(environ, start_response):
data = b"Hello, World!\n"
start_response("200 OK", [
("Content-Type", "text/plain"),
("Content-Length", str(len(data)))
])
return iter([data])
$ gunicorn -w 4 myapp:app
Sigo recibiendo este error en Cygwin
<project-name>\flask\lib\site-packages\gunicorn\util.py", line 9, in <module>
import fcntl
ModuleNotFoundError: No module named 'fcntl'
esto también se ejecuta en el subsistema de Windows 10, por lo que tal vez ya no sea necesario.
Para admitir Windows de forma nativa, necesitamos lo siguiente:
CreateProcessW
para generar un proceso en lugar de os.fork (¿quizás reutilizando la abstracción _winapi usada en multiprocesamiento?(¿quizás reutilizando la abstracción _winapi utilizada en multiprocesamiento?
Por cierto, el multiprocesamiento usa CreateProcess
en popen_spawn_win32.py
y no es parte del proceso de compatibilidad con versiones anteriores de Python ya que es un módulo interno.
¡Hola, todos! ¿Cómo está avanzando en este tema? ¿Tenemos a la vista algunas fechas límite para su finalización? ¡Gracias!
@bartmika no. No habrá una fecha límite. Tenemos mucho trabajo por hacer, como señaló Benoitc. Damos la bienvenida a la ayuda. Como dije anteriormente, suscríbase a este número para recibir actualizaciones. Actualizaremos cuando haya algo para compartir.
Gracias @tilgovi ,
Me gustaría discutir la posibilidad de ofrecer una recompensa por cerrar este problema. Que un desarrollador de Gunicorn se comunique conmigo en bart [arroba] simalam.com
¡Gracias!
@bartmika lo siento, fue una semana ocupada. Me pondré en contacto contigo mañana una vez que haya estado en contacto con @tilgovi & @berkerpeksag . De todos modos es una buena idea.
@benoitc solo quería verificar el estado de Gunicorn para Windows. Veo que aún no hay una fecha de lanzamiento, pero quería ver si hay algo beta que pueda probar en Windows.
El trabajo de
@bartmika me han desviado estos días. Intentaré configurar un plan y hacerlo público a finales de esta semana.
Entonces, ¿hay ahora soporte para Windows ?. Es diciembre
¡Estoy deseando que llegue! Es enero.
@benoitc ¿ Alguna actualización?
Hola,
Me estoy registrando nuevamente, ¿hay algo nuevo?
Gracias
Miguel
Hola
¿Puedo usar Apache Airflow en Windows ahora?
Gracias
Sudhakar
Hola,
Estoy intentando con el siguiente comando pero obtengo este error. ¿Puedes ayudar en esto?
(flaskms) C:\Users\Socrates>gunicorn --bind 0.0.0.0:8000 hello-world:app
Traceback (most recent call last):
File "c:\programdata\anaconda3\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "c:\programdata\anaconda3\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\ProgramData\Anaconda3\Scripts\gunicorn.exe\__main__.py", line 5, in <module>
File "c:\programdata\anaconda3\lib\site-packages\gunicorn\app\wsgiapp.py", line 10, in <module>
from gunicorn.app.base import Application
File "c:\programdata\anaconda3\lib\site-packages\gunicorn\app\base.py", line 12, in <module>
from gunicorn import util
File "c:\programdata\anaconda3\lib\site-packages\gunicorn\util.py", line 9, in <module>
import fcntl
ModuleNotFoundError: No module named 'fcntl'
Como truco, creé el archivo fcntl.py
con el contenido a continuación, lo compilé como archivo fcntl.cpython-36.pyc
, lo coloqué en la carpeta __pycache__
, reinicié el terminal y ejecuté el comando gunicorn --bind 0.0.0.0:8000 hello-world:app
, pero aún así no tuve suerte.
contenido fcntl.py:
FD_CLOEXEC = 1
F_DUPFD = 0
F_GETFD = 1
F_SETFD = 2
F_GETFL = 3
F_SETFL = 4
F_GETOWN = 5
F_SETOWN = 6
F_GETLK = 7
F_SETLK = 8
F_SETLKW = 9
F_RGETLK = 10
F_RSETLK = 11
F_CNVT = 12
F_RSETLKW = 13
F_RDLCK = 1
F_WRLCK = 2
F_UNLCK = 3
F_UNLKSYS = 4
def fcntl(fd, op, arg=0):
return 0
def ioctl(fd, op, arg=0, mutable_flag=True):
if mutable_flag:
return 0
else:
return ""
def flock(fd, op):
return
def lockf(fd, operation, length=0, start=0, whence=0):
return
Obtuve esto de https://stackoverflow.com/questions/11087682/does-gunicorn-run-on-windows
¿Sería útil si alguien puede sugerir la mejor alternativa de Gunicorn para Windows por el momento?
Actualización: estoy usando camarera ahora, muy buena alternativa :)
Han pasado 5 años y ¿alguna actualización sobre este? Gracias.
@hsluoyz lo último que pasó públicamente fue el 16 de marzo de este año, creo.
Hola,
¿Aún no has conseguido que la bifurcación funcione en Windows?
Hola,
Me interesaría trabajar en este ticket.
¿Cuál es el estado actual del puerto?
¿Cuál es el estado actual del puerto?
PR # 1468 se fusionó hace un año para agregar pruebas en AppVeyor en Windows, pero la cuenta de AppVeyor debe activarse antes de que se ejecute.
Después de eso, alguien necesita iterar a través de las fallas que ocurren en las ejecuciones de prueba de Windows.
@edmorley Hoy me
@Sweenpet no mucho todavía. Lo primero que debe hacer es mirar los resultados de la prueba y crear tickets a partir de ellos.
También debemos decidir sobre el alcance:
Propongo discutir eso en el IRC a veces mañana si quieres.
Instalé appveyor en el repositorio:
@benoitc , tengo la aplicación (examples / flaskapp.py) y todas las pruebas ejecutándose en WSL, para Ubuntu 18.04 y Python 3.6.5. Es de suponer que debería funcionar para todas las demás versiones especificadas en el archivo tox. El hecho de que se ejecute en WSL resolvería la mayoría de los problemas de los usuarios de Windows, me imagino, a menos que no se ejecuten en Windows 10. ¿Cygwin todavía se usa ampliamente?
Feliz de tener una discusión mañana sobre el soporte nativo en Windows, ¿a qué hora conviene?
También creará esos tickets mañana, parece ser principalmente alrededor de módulos y sockets nativos de Linux.
FWIW, uso cygwin en Windows
Si Python no se ejecuta en Windows correctamente (por ejemplo, psycopg2, weasyprint y lo que no), ¿por qué diablos Python sigue afirmando que es multiplataforma? Hasta ahora, ni siquiera funciona correctamente en Windows 10.
@ jtan4nih esa actitud es innecesaria.
Python es multiplataforma, gunicorn no lo es.
lo siento, he sido horriblemente desviado. Diría que si alguien quiere ejecutar gunicorn de forma nativa en Windows, estaría encantado de aceptar cualquier parche y responder a cualquier pregunta.
ver cs01 / gdbgui # 18, tal vez ayude
Han pasado 7 años, ¿y suerte para que esto suceda?
Es posible que tenga algún ciclo que gaste en él durante marzo. Tendré que encontrar un
forma de ejecutar Windows en algún lugar. ya puedes ejecutarlo en la terminal
de todas formas.
también cualquiera que realmente use Windows puede ayudar en ese tema.
Prueba waitress
.
El diseño de gunicorn
es aprovechar los núcleos Unix y similares a Unix para formar un servidor web.
mirar esos tutoriales de youtube sobre cómo implementar django en heroku usando gunicorn realmente me hace preguntarme cómo es posible que hagan eso, mientras tanto, todavía estoy atrapado con el problema de gunicorn jajaja
Prueba
waitress
.
El diseño degunicorn
es aprovechar los núcleos Unix y similares a Unix para formar un servidor web.
Waitress no admite el multiprocesamiento adecuado.
¿Existe una idea aproximada de cómo se podría hacer en Windows para admitir el multiprocesamiento adecuado?
¿Sabemos cuáles son los principales obstáculos hasta ahora para que esto se implemente?
Es posible que tenga algún ciclo que gaste en él durante marzo. Necesitaré encontrar una forma de ejecutar Windows en algún lugar. ya puedes ejecutarlo en la terminal de todos modos.
¿Podría la máquina virtual de desarrollo de Win10 ser una solución para que ejecute Windows y verifique la compatibilidad con gunicorn?
Quizás podamos usar pywin32
para Windows en lugar de fnctl
en Windows, parece que tienen capacidades de bloqueo de archivos.
Comentario más útil
@ jtan4nih esa actitud es innecesaria.
Python es multiplataforma, gunicorn no lo es.