2016-05-15 4 views
0

Ich habe eine Website, die ich mit Flask geschrieben habe, obwohl für diese Frage ich nicht denke, dass das relevant ist. Dies ist die Ordnerstruktur, mit der ich arbeite. Rhea ist der Name des Projekts und des übergeordneten Verzeichnisses.Python, mit Variablen von __init__ in einem Elternverzeichnis

Mein Problem ist ich Variablen innerhalb meiner Init deklarieren, die ich in script1.py verwenden muss. Wie importiere ich diese in script1.py?

als Referenz das ist meine Init-Datei

import os 
from flask import Flask 
from flask_appconfig import AppConfig 
from flask_bootstrap import Bootstrap 
from flask.ext.sqlachemy import SQLAlchemy 

from .frontend import frontend 
from .nav import nav 
from .models import User 

basedir = os.path.abspath(os.path.dirname(__file__)) 

SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'db', 'userdb.db') 
SQLALCHEMY_MIGRATE_REPO = os.path.join(basedir, 'db') 
WTF_CSRF_ENABLED = True 
BOOTSTRAP_SERVE_LOCAL = True 
SECRET_KEY = --SNIP-- 

app = Flask(__name__) 
app.config.from_object(__name__) 

AppConfig(app) 
Bootstrap(app) 
db = SQLAlchemy(app) 
app.register_blueprint(frontend) 
nav.init_app(app) 

app.run(host='0.0.0.0', port=6060, debug=False); 

return app 

Die Variablen ich brauche, ist db, SQLALCHEMY_DATABASE_URI und die SQLALCHEMY_MIGRATE_REPO.

Danke für jede Hilfe.

Antwort

0

Eine Lösung ist die sys.path mit dem Rhea Paket übergeordneten Verzeichnis anhängen. Aber es ist hässlich.

# cript1.py 
import os 
import sys 

rhea_dir = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) 
sys.path.append(rhea_dir) 

import Rhea 
print Rhea.SQLALCHEMY_DATABASE_URI