I’m making a rest API using fastapi.
I just wonder why I get below messages whenever I execute my server.
INFO: Started server process [97154] INFO: Waiting for application startup. INFO: Application startup complete. --- Logging error --- Traceback (most recent call last): File "/usr/lib/python3.10/logging/__init__.py", line 1100, in emit msg = self.format(record) File "/usr/lib/python3.10/logging/__init__.py", line 943, in format return fmt.format(record) File "/usr/lib/python3.10/logging/__init__.py", line 678, in format record.message = record.getMessage() File "/usr/lib/python3.10/logging/__init__.py", line 368, in getMessage msg = msg % self.args TypeError: %d format: a real number is required, not str Call stack: File "mYlOcAtIoN/src/main.py", line 14, in <module> uvicorn.run(app, host='0.0.0.0', port='8000') File "mYlOcAtIoN/venv/lib/python3.10/site-packages/uvicorn/main.py", line 461, in run server.run() File "mYlOcAtIoN/venv/lib/python3.10/site-packages/uvicorn/server.py", line 67, in run return asyncio.run(self.serve(sockets=sockets)) File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run return loop.run_until_complete(main) File "mYlOcAtIoN/venv/lib/python3.10/site-packages/uvicorn/server.py", line 84, in serve await self.startup(sockets=sockets) File "mYlOcAtIoN/venv/lib/python3.10/site-packages/uvicorn/server.py", line 174, in startup self._log_started_message(listeners) File "mYlOcAtIoN/venv/lib/python3.10/site-packages/uvicorn/server.py", line 215, in _log_started_message logger.info( Message: 'Uvicorn running on %s://%s:%d (Press CTRL+C to quit)' Arguments: ('http', '0.0.0.0', '8000')
And below is main.py
.
import uvicorn as uvicorn app = FastAPI() # Skip some settings if __name__ == '__main__': uvicorn.run(app, host='0.0.0.0', port='8000')
Also, I can’t get anything in swagger and redocs whereas I can get REST methods’ results.
Advertisement
Answer
You need to change your port to int
and app object to str
like this:
if __name__ == "__main__": uvicorn.run("main:app", host="0.0.0.0", port=8000)