2015-02-19 13 views
7

Io lavoro con Flask-Testing e faccio il file test_app.py per testare Ma ho ricevuto questo errore File "test_app.py", riga 4, in da app import create_app, db ImportError: nessun modulo chiamato app. quindi per favore aiutare come posso risolvere il problema e qual è il problema Thanx :)ImportError: nessun modulo chiamato app

ecco la mia Struttura:

myapplication 
app 
    __ init __.py 
    model.py 
    form.py 
    autho 
    layout 
    static 
    templates 
migrations 
test 
    -test_app.py 
config.py 
manage.py 

test_app.py

#!flask/bin/python 
import unittest 
from flask.ext.testing import TestCase 
from app import create_app, db 
from app.model import Users 
from flask import request, url_for 
import flask 

class BaseTestCase(TestCase): 

    def create_app(self): 
     self.app = create_app('testing') 
     return self.app 

config.py

class TestingConfig(Config): 
    TESTING = True 
    SQLALCHEMY_DATABASE_URI = os.environ.get('TEST_DATABASE_URL') or \ 
     'sqlite:///' + os.path.join(basedir, 'mytest.sqlite') 

__ init __.py

#!flask/bin/python 
from flask import Flask 
from flask.ext.sqlalchemy import SQLAlchemy 
from flask.ext.login import LoginManager 
import psycopg2 
from config import basedir 
from config import config 

db = SQLAlchemy() 
lm = LoginManager() 
lm.login_view = 'login' 
login_manager = LoginManager() 
login_manager.login_view = 'layout.login' 

def create_app(config_name): 
    app = Flask(__name__) 
    app.config['DEBUG'] = True 
    app.config.from_object(config[config_name]) 
    db.init_app(app) 
    login_manager.init_app(app) 
    # login_manager.user_loader(load_user) 
    from .layout import layout as appr_blueprint 
    # register our blueprints 
    app.register_blueprint(appr_blueprint) 

    from .auth import auth as auth_blueprint 
    app.register_blueprint(auth_blueprint) 
    return app 
+0

Potrebbe essere necessario aggiungere la 'MyApplication /' per il '$ PYTHONPATH' (vedi http://users-cs.au.dk/chili/PBI/pythonpath.html) – BorrajaX

+0

thnx per il tuo commento ma non sono esperto in python quindi dovrei comando (venv) peg @ peg: ~/myapplication/test $ export PYTHONPATH = $ {PYTHONPATH}:/users/[nome utente]/myapplication/test/??? @BorrajaX – LiLi

+0

Quasi. Prova: 'esporta PYTHONPATH = $ {PYTHONPATH}:/users/[nome utente]/myapplication /' Il tuo modulo (o directory) 'app' è in'/myapplication/'. Facci sapere cosa succede – BorrajaX

risposta

6

Dai commenti:

Ci avrebbe potuto essere due problemi:

  1. Il percorso per myapplication/ non era stato aggiunto alla variabile $PYTHONPATH ambiente (ulteriori informazioni here e here) Diciamo che il codice vita sotto /home/peg/myapplication/. È necessario digitare il terminale export PYTHONPATH=${PYTHONPATH}:/home/peg/myapplication/

  2. __init__.py potrebbe avere avuto un refuso. Non ci dovrebbe essere spazi bianchi tra le sottolineature __ e il init.py pezzo (__init__.py è buono, non è __ init __.py)

+4

Ho lo stesso errore esatto, ma questa soluzione non ha funzionato per me. – ifconfig

Problemi correlati