es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Valor de error al intentar ejecutar sanic en modo de desarrollo.

Estoy tratando de ejecutar un servidor a partir del ejemplo de inicio de Sanic, aquí está mi código en server.py:

from sanic import Sanic
from sanic.response import text

app = Sanic("MyHelloWorldApp")

@app.get("/")
async def hello_world(request):
    return text("¡Hola, mundo!")

Y cuando ejecuto el comando predeterminado sanic server.app, todo está bien:

$ sanic server.app
[2021-12-31 17:08:21 +0700] [22196] [INFO] 
  ┌─────────────────────────────────────────────────────────────┐
  │                        Sanic v21.12.0                       │
  │              Goin' Fast @ http://127.0.0.1:8000              │
  ├───────────────────────┬─────────────────────────────────────┤
  │                       │     mode: producción, un solo worker │
  │     ▄███ █████ ██     │   servidor: sanic                   │
  │    ██                 │   python: 3.9.4                     │
  │     ▀███████ ███▄     │ plataforma: Windows-10-10.0.19041-SP0│
  │                 ██    │ paquetes: sanic-routing==0.7.2      │
  │    ████ ████████▀     │                                     │
  │                       │                                     │
  │ Construye rápido. Ejecuta rápido. │                          │
  └───────────────────────┴─────────────────────────────────────┘

[2021-12-31 17:08:21 +0700] [22196] [WARNING] Sanic se está ejecutando en modo PRODUCCIÓN. Considera usar '--debug' o '--dev' mientras desarrollas activamente tu aplicación.
[2021-12-31 17:08:21 +0700] [22196] [INFO] Iniciando worker [22196]

Pero cuando intento ejecutar en modo desarrollo, arroja un error:

$ sanic --dev server.app
A partir de la versión 22.3, --debug ya no ejecutará automáticamente el recargador automático.
Cambia a --dev para seguir utilizando esa funcionalidad.
c:\users\ev\repos\test-dashboard\venv\scripts\python.exe: Error al encontrar la especificación de módulo para 'main' (ValueError: main.spec es None)

¿Debo agregar algo para ejecutar Sanic en modo desarrollo?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para ejecutar Sanic en modo de desarrollo, debes utilizar la opción --dev en lugar de --debug. Además, debes modificar el archivo server.py para incluir un bloque if __name__ == '__main__': para ejecutar correctamente el servidor. Aquí está el código modificado:

    from sanic import Sanic
    from sanic.response import text
    
    app = Sanic("MiAppHolaMundo")
    
    @app.get("/")
    async def hello_world(request):
        return text("Hola, mundo.")
    
    if __name__ == '__main__':
        app.run(host="0.0.0.0", port=8000, debug=True)
    

    Con este código, puedes ejecutar el servidor en modo de desarrollo utilizando el siguiente comando:

    sanic server.app --dev
    

    Esto debería iniciar el servidor en modo de desarrollo sin errores.

Comments are closed.