Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Não consigo importar HttpHook

O código parou nesta parte:

from airflow.hooks.http_hook import HttpHook

class TwitterHook(HttpHook):
    def __init__(self) -> None:
        pass

    def run(self):
        pass

O import na primeira linha não passa porque o VSCode diz que "could not be resolved". Ao tentar rodar o arquivo, o terminal retorna "ModuleNotFoundError: No module named 'airflow'". Não há uma pasta 'hooks' dentro da pasta 'airflow', e é isso que o código parece estar procurando. Pelo mesmo motivo, não consegui visualizar a declaração da classe a ser herdada. Não sei se faltou instalar algum pacote, mas creio ter seguido todo o passo a passo até o momento.

4 respostas
solução!

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeQuando você inicia a variavel de ambiente, ele cria essas pastas .env/lib/airflow >> hooks/ que tem o modulo http_hook que você esta tentando importar. Verifica se essas pastas estão criadas, caso não, sugiro refazer os passos iniciais

python3 -m venv .env
source .env/bin/activate
AIRFLOW_HOME=$(pwd)/airflow

e até atualizar seu airflow pro 2.2.2.

Outra coisa, que não deve influenciar por enquanto mas você ja poderia tentar, seria que o modulo http_hook ta depreciado como na imagem você ve:

"This module is deprecated. Please use :mod:`airflow.providers.http.hooks.http`."""

use isso no lugar:

from airflow.providers.http.hooks.http import HttpHook

Interessante, agora que você falou eu encontrei estas pastas, porém não funcionou como deveria. O que eu fiz pra funcionar foi uma gambiarra: fui no repositório do airflow, baixei o arquivo desse hook e criei uma pasta pra importar. Funcionou, mas não deveria ser assim.

Quando voltei hoje, estava tendo um problema para iniciar o webserver, e parece que o problema foi que iniciei o webserver na home e o scheduler na home/datapipeline, então quando tentei abrir os dois na home/datapipeline hoje, o webserver não queria abrir. Imagino que isso pode ter gerado mais problemas, o melhor a fazer deve ser voltar do zero com mais atenção. Precisa de algum comando de uninstall pra isso ou é só apagar os arquivos?

Estranho o conflito depois de abrir os dois dentro da pasta correta. Acho que so apagar ja basta.

Voltando aqui, consegui fazer tudo funcionar certo, o meu problema é só com o PyCharm que aponta como se tivesse um problema pra importar, mas rodando no Ubuntu no WSL funciona sem problemas.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software