2016-06-05 8 views
-3

Ich habe eine config.yaml-Datei, die ich in meinem app.py importieren möchten.Import von YAML-Datei

Dies ist meine Ordnerstruktur:

/root 
     __init__.py 
     app.py 
     config.yaml 

App.py:

import logging 
    import config 
    from flask import Flask 

    app = Flask(__name__) 
    logger = logging.getLogger(__name__) 

    app.run(port=5001) 

Ich habe kein Problem andere Python-Module zu importieren (.py), aber wenn ich versuche, meine YAML-Datei zu importieren bekomme ich:

ImportError: No module named config 

D weiß jemand, warum das nicht funktioniert? Brauche ich irgendwelche Abhängigkeiten, um eine YAML-Datei wie diese importieren zu können?

+0

Warum haben Sie erwarten, dass eine YAML-Datei importieren? Es ist kein Python-Modul! Was ist drin? Hast du versucht nach einem Python YAML Parser zu suchen? – jonrsharpe

Antwort

0

Sie können nicht importieren YAML direkt in Python-Dateien, wie Sie in Ihrem Beispiel vorschlagen - nur *.py Dateien. Sie können das yaml Python-Modul importieren und die Datei analysieren, wie es in diesen SO Antworten gezeigt:

How can I parse a YAML file in Python

Parsing a YAML file in Python, and accessing the data?

+0

Danke. Ja, ich habe vergessen, das in meinem Post zu erwähnen. Ich habe das in meiner __init__.py-Datei. Ich dachte, dass Parser es mir ermöglichen würde, meine 'Config' zu importieren. –

+0

Ich fürchte, das ist nicht so, wie funktioniert ;-) Sie müssen die Datei manuell analysieren. –

2

Warum Sie erwarten, eine YAML-Datei zu können, importieren? Es ist nicht Python, und es ist nicht ein Erweiterungsmodul, und das sind die einzigen Dinge, die Python importiert.

YAML (Noch eine Auszeichnungssprache) ist ein Datenformat, also müssen Sie die Daten mit einer geeigneten Bibliothek lesen: this answer könnte Ihnen einige Hinweise geben.

+1

Danke. Ja, ich habe vergessen, das in meinem Post zu erwähnen. Ich habe das in meiner __init__ Datei. Ich dachte, dass Parser es mir ermöglichen würde, meine 'config' in andere .py-Dateien zu importieren. –