1
resposta

Erro ao Executar o Comando uvicorn main:app --reload - Could not import module "main".

Ao tentar executar o comando uvicorn main:app --reload, dá a seguinte mensagem:
ERROR: Error loading ASGI app. Could not import module "main".

Código a seguir:

from fastapi import FastAPI, Query
import requests

app = FastAPI()

@app.get('/api/hello')
def hello_world():
return {'Hello': 'World'}

@app.get('/api/restaurantes'):
def get_restaurantes(restaurante: str = Query(None)):
url = 'https://guilhermeonrails.github.io/api-restaurantes/restaurantes.json'
response = requests.get(url)

if response.status_code == 200:
    dados_json = response.json()
    if restaurante is None:
        return{'Dados':dados_json}
    
    dados_restaurante = {}
    for item in dados_json:
        if item['Company'] == restaurante:
            dados_restaurante.append({
                "item": item['Item'],
                "price": item['price'],
                "description": item['description']
            })
    return {'Restaur'}
else: 
    return {'Erro':f'{responseesponse.status_code} - {response.text}
1 resposta

Oi Renato! Tudo bem?

Analisando o erro que você está enfrentando, parece que o uvicorn não está conseguindo encontrar o módulo main. Isso pode acontecer por alguns motivos comuns:

  1. Localização do Arquivo: Verifique se você está executando o comando uvicorn no diretório correto, onde o arquivo main.py está localizado. Você pode usar o comando ls (no Linux/Mac) ou dir (no Windows) para listar os arquivos do diretório atual e garantir que main.py está presente.

  2. Estrutura do Projeto: Se você tiver uma estrutura de pastas, talvez precise ajustar o comando para incluir o caminho correto. Por exemplo, se main.py estiver dentro de uma pasta chamada app, o comando seria uvicorn app.main:app --reload.

  3. Erros de Sintaxe: Também notei que há um pequeno erro de sintaxe no seu código. A linha @app.get('/api/restaurantes'): tem um : a mais no final. Corrija para @app.get('/api/restaurantes').

  4. Dependências: Certifique-se de que todas as dependências necessárias estão instaladas, incluindo o uvicorn e fastapi. Você pode instalar usando pip install fastapi uvicorn.

Após verificar esses pontos, tente executar o comando novamente.

Espero ter ajudado e bons estudos!

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