2017-03-07 4 views
1

ich eine Ordnerstruktur haben:Airflow kann nicht auf lokale Dateien zugreifen in Python-Code

root_folder 
    - file.conf 
    - models 
    - __init__.py 
    - model1.py 
    - airflow 
    - dags 
     - dag1.py 

so im obigen Fall dag1 Einfuhren model1. Dabei bricht es, weil models/__init__.py die Datei file.conf lädt. Ich habe versucht, Stammordner sys.path durch sys.path.append hinzufügen, die das Problem nicht zu lösen scheint. Ich habe auch versucht, relative Pfade von Init, aber immer noch kann es nicht finden Sie die Datei durch relative Pfad gegeben. Was ist eine gute Möglichkeit, Ihren eigenen Code mit Luftstromcode zu bündeln?

Nachdem ich verschiedene Möglichkeiten getestet habe, funktioniert es für mich mit dem absoluten Pfad der Dateien wie os.path.abspath(os.path.join(__file__ ,"../..") + '/file.conf'). Wenn Sie einen besseren Weg kennen, antworten Sie bitte unten. Thanks :)

+0

importieren Was ist der Code, den Sie zu laden file.conf verwenden? –

+0

'os.path.abspath (os.path.join (__ file__," ../ .. ") + '/file.conf')' – nehiljain

Antwort

0

Sie können eine __init__.py-Datei im Stammordner hinzufügen:

-root_folder - __init__.py - file.conf - models - __init__.py - model1.py - airflow - dags - dag1.py

Dann den Pfad zu Ihrem Stammordner auf $ PYTHONPATH hinzufügen.

schließlich in der dag1.py Datei-Import:

import file.conf

und Sie können auch

import models.model1

Verwandte Themen