Luftstrom mysql_hook Kein Modul mit dem Namen 'MySQLdb'

Dec 14 2020

ich habe

Kein Modul namens 'MySQLdb'

beim importieren von ariflow

aus airflow.hooks.mysql_hook MySqlHook importieren

Ich benutze Mac, Python 3.7.6

Eingerichtet

  1. pip install 'apache-airflow [mysql]'
  2. Pip installieren Apache-Luftstrom
  3. PyMySQL == 0.10.1
  4. Marshmallow-sqlalchemy == 0.23.1
  5. mysql-connector-python == 8.0.22
  6. mysqlclient == 1.3.14

Neben diesem speziellen Problem ist auf einem Server ein Luftstrom installiert, und ich habe versucht, einige Luftstromkomponenten (Haken usw.) ohne vollständige Luftstromumgebung zu testen. Ist das möglich?

Vielen Dank!

Antworten

4 Elad Dec 14 2020 at 12:39

Sie verwenden das aktualisierte nicht MySqlHook.

Für Airflow <2.0Sie müssen Backport-Anbieter installieren :

pip install apache-airflow-backport-providers-mysql

Für müssen Airflow >=2.0Sie Anbieter installieren :

pip install apache-airflow-providers-mysql

dann können Sie den Hook importieren über:

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

Was Ihre zweite Frage betrifft, bin ich mir nicht sicher, was Sie unter einer Umgebung mit vollem Luftstrom verstehen. Die Anbieter wurden beispielsweise vom Airflow-Kern zu getrennten Paketen entfernt.