1
resposta

[Bug] Uvicorn error message

(venv) PS C:\Users\Usuario\Desktop\Python\Alura\pep8> pip freeze
annotated-types==0.7.0
anyio==4.6.2.post1
click==8.1.7
colorama==0.4.6
fastapi==0.115.3
h11==0.14.0
idna==3.10
pydantic==2.9.2
pydantic_core==2.23.4
sniffio==1.3.1
starlette==0.41.0
typing_extensions==4.12.2
uvicorn==0.32.0

Erro ao ativar o uvicorn:

(venv) PS C:\Users\Usuario\Desktop\Python\Alura\pep8> uvicorn app.main:app --reload
INFO:     Will watch for changes in these directories: ['C:\\Users\\Usuario\\Desktop\\Python\\Alura\\pep8']
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [12108] using StatReload
Process SpawnProcess-1:
Traceback (most recent call last):
  File "C:\Users\Usuario\AppData\Local\Programs\Python\Python312\Lib\multiprocessing\process.py", line 314, in _bootstrap
    self.run()
  File "C:\Users\Usuario\AppData\Local\Programs\Python\Python312\Lib\multiprocessing\process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\Usuario\Desktop\Python\Alura\pep8\venv\Lib\site-packages\uvicorn\_subprocess.py", line 80, in subprocess_started
    target(sockets=sockets)
  File "C:\Users\Usuario\Desktop\Python\Alura\pep8\venv\Lib\site-packages\uvicorn\server.py", line 65, in run
    return asyncio.run(self.serve(sockets=sockets))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Usuario\AppData\Local\Programs\Python\Python312\Lib\asyncio\runners.py", line 194, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "C:\Users\Usuario\AppData\Local\Programs\Python\Python312\Lib\asyncio\runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Usuario\AppData\Local\Programs\Python\Python312\Lib\asyncio\base_events.py", line 687, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "C:\Users\Usuario\Desktop\Python\Alura\pep8\venv\Lib\site-packages\uvicorn\server.py", line 69, in serve
    await self._serve(sockets)
  File "C:\Users\Usuario\Desktop\Python\Alura\pep8\venv\Lib\site-packages\uvicorn\server.py", line 76, in _serve
    config.load()
  File "C:\Users\Usuario\Desktop\Python\Alura\pep8\venv\Lib\site-packages\uvicorn\config.py", line 434, in load
    self.loaded_app = import_from_string(self.app)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Usuario\Desktop\Python\Alura\pep8\venv\Lib\site-packages\uvicorn\importer.py", line 22, in import_from_string
    raise exc from None
  File "C:\Users\Usuario\Desktop\Python\Alura\pep8\venv\Lib\site-packages\uvicorn\importer.py", line 19, in import_from_string
    module = importlib.import_module(module_str)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Usuario\AppData\Local\Programs\Python\Python312\Lib\importlib\__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1310, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1324, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'app'
1 resposta

Oi Ângelo! Tudo bem?

O erro "ModuleNotFoundError: No module named 'app'" indica que o Uvicorn não conseguiu encontrar o módulo ou pacote chamado 'app'. Então, deixarei algumas sugestões para resolver esse problema:

  1. Verifique o Caminho do Módulo: Certifique-se de que o caminho especificado no comando uvicorn app.main:app --reload está correto. O app.main:app refere-se ao módulo app e ao aplicativo FastAPI chamado app dentro do arquivo main.py. Verifique se você tem um arquivo main.py dentro de uma pasta chamada app.

  2. Estrutura de Diretórios: A estrutura de diretórios deve estar correta. Se o arquivo main.py não estiver dentro de uma pasta chamada app, você precisará ajustar o caminho no comando. Por exemplo, se o arquivo main.py estiver diretamente na pasta do projeto, o comando deve ser uvicorn main:app --reload.

  3. Nome do Arquivo e Variável: Certifique-se de que o arquivo Python e a variável que contém a instância do FastAPI estão corretamente nomeados. Se o arquivo for main.py, a variável deve ser app no comando uvicorn.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.