airflow mysql_hook Nenhum módulo chamado 'MySQLdb'

Dec 14 2020

eu obtive

Nenhum módulo chamado 'MySQLdb'

ao importar ariflow

from airflow.hooks.mysql_hook import MySqlHook

Estou usando Mac, python 3.7.6

Instalado

  1. pip install 'apache-airflow [mysql]'
  2. pip instalar apache-airflow
  3. PyMySQL == 0.10.1
  4. marshmallow-sqlalchemy == 0.23.1
  5. mysql-connector-python == 8.0.22
  6. mysqlclient == 1.3.14

Além desse problema específico, temos um fluxo de ar instalado no servidor e eu estava tentando testar alguns componentes do fluxo de ar (ganchos, etc.) sem ambiente de fluxo de ar completo, isso é viável?

Obrigado!

Respostas

4 Elad Dec 14 2020 at 12:39

Você não está usando o atualizado MySqlHook.

Para Airflow <2.0você precisará instalar provedores de backport :

pip install apache-airflow-backport-providers-mysql

Para Airflow >=2.0você precisará instalar provedores :

pip install apache-airflow-providers-mysql

então você pode importar o gancho via:

from airflow.providers.mysql.hooks.mysql import MySqlHook

Quanto à sua segunda pergunta, não tenho certeza do que você entende por ambiente com fluxo total de ar. Os provedores, por exemplo, foram removidos do núcleo do Airflow para pacotes separados.