1
resposta

Erro ao executar o script twitter_hook

Boa tarde, quando tento executar o twitter_hook ele da a mensagem dizendo que o airflow não está sendo encontrado:

Traceback (most recent call last):
  File "twitter_hook.py", line 1, in <module>
    from airflow.hooks.http_hook import HttpHook
ModuleNotFoundError: No module named 'airflow'

Tentando um pip install airflow aparece o seguinte texto:


    Collecting airflow
  Using cached airflow-0.6.tar.gz (1.2 kB)
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-knaw4ckx/airflow/setup.py'"'"'; __file__='"'"'/tmp/pip-install-knaw4ckx/airflow/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-knaw4ckx/airflow/pip-egg-info
         cwd: /tmp/pip-install-knaw4ckx/airflow/
    Complete output (13 lines):
    running egg_info
    creating /tmp/pip-install-knaw4ckx/airflow/pip-egg-info/airflow.egg-info
    writing /tmp/pip-install-knaw4ckx/airflow/pip-egg-info/airflow.egg-info/PKG-INFO
    writing dependency_links to /tmp/pip-install-knaw4ckx/airflow/pip-egg-info/airflow.egg-info/dependency_links.txt
    writing top-level names to /tmp/pip-install-knaw4ckx/airflow/pip-egg-info/airflow.egg-info/top_level.txt
    writing manifest file '/tmp/pip-install-knaw4ckx/airflow/pip-egg-info/airflow.egg-info/SOURCES.txt'
    reading manifest file '/tmp/pip-install-knaw4ckx/airflow/pip-egg-info/airflow.egg-info/SOURCES.txt'
    writing manifest file '/tmp/pip-install-knaw4ckx/airflow/pip-egg-info/airflow.egg-info/SOURCES.txt'
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-knaw4ckx/airflow/setup.py", line 32, in <module>
        raise RuntimeError('Please install package apache-airflow instead of airflow')
    RuntimeError: Please install package apache-airflow instead of airflow
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
1 resposta

Olá, Manfredi! como você está?

O erro de módulo não encontrado pode estar acontecendo porque o ambiente virtual no qual você está tentando executar o script twitter_hook.py não foi ativado. Para solucionar isso, tente ativar o ambiente virtual digitando o seguinte comando na pasta onde você o criou:

source nome_do_seu_ambiente/bin/activate

E após isso, tente executar novamente o código.

Outro motivo que pode estar causando esse comportamento inesperado é a instalação do Airflow ter sido executada fora do ambiente virtual e você está tentando executar o script com o ambiente virtual ativado. Para solucionar isso faz-se necessário instalar o Airflow dentro do ambiente, da seguinte forma:

pip install apache-airflow==1.10.14 --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-1.10.14/constraints-3.7.txt"

Para executar a instalação do airflow com o pip sem uso do constraints é necessário especificar o ‘apache-’ no comando, tornando-se portanto:

pip install apache-airflow

Porém, dessa forma você irá instalar uma versão diferente da usada pelo instrutor em aula, então recomendo fazer a instalação com o uso de constraints especificando a versão 1.10.14, para evitar algum comportamento inesperado devido a versão e dificultar o aprendizado no andamento do curso.

Espero ter ajudado e estou sempre à disposição quando tiver alguma dúvida.

:)

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