OVH Power, comment déployée une application Python FastAPI

Bonjour,

J'étais en recherche d'un hébergement pour une application python et au fil de mes recherche je suis tombé sur la bêta de OVH Power permettant d'héberger des applications Python.

J'avais donc essayé en installant Flask sur le serveur avec le ssh / mis via le ftp le fichier app.py créant une application Flask (avec le code permettant d'activer le venv) comme indiqué dans ce tutoriel.

J'ai aussi trouver un tuto pour le framework Django mais pas de tuto pour FastAPI, est-ce possible d'installer le framework FastAPI, si oui comment ?

Pour l'instant j'ai essayé ce fichier app.py en installant uvicorn et fastapi via pip

this_file = "venv/bin/activate_this.py"
exec(open(this_file).read(), {'file': this_file})

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def root():
return {"message": "Hello World"}

Mais quand je fais sur le ssh la commande "uvicorn app:app" j'ai une erreur "permission refusé"





Merci d'avance de votre aide.

Bonjour @0dff57312443e6a2801e,

Je vous remercie pour l'intérêt que vous portez à nos produits en beta :slight_smile:

Pour toutes les demandes liées aux offres Power,
https://labs.ovhcloud.com/en/

Je vous invite à poser vos questions depuis le salon discord suivant :
https://discord.com/channels/850031577277792286/971051509167058954

^FabL

Bonjour @0dff57312443e6a2801e, j'ai eu le même soucis il y a quelques mois lorsque j'ai déployé une app Fastapi sur cette offre gratuite.

Le soucis est tout simple, cette offre propose un serveur WSGI (synchrone), tandis que Fastapi est prévu pour tourner sur un serveur ASGI (asynchrone). Il faut donc convertir votre application, en ajoutant deux lignes:

this_file = "venv/bin/activate_this.py"
exec(open(this_file).read(), {'file': this_file})

from a2wsgi import ASGIMiddleware
from fastapi import FastAPI

app = FastAPI()
application = ASGIMiddleware(app)


@app.get("/")
async def root():
return {"message": "Hello World"}