2015-02-19 4 views
7

Я работаю с Flask-Testing и делаю файл test_app.py для тестирования. Но я получил эту ошибку. Файл «test_app.py», строка 4, из приложения import create_app, db ImportError: ни один модуль с именем приложение. так, пожалуйста, помогите, как я могу это исправить, и что это проблема Thanx :)ImportError: Нет модуля с именем app

вот моя структура:

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

Вам может понадобиться добавить 'MyApplication /' директории на '$ PYTHONPATH' (см. http://users-cs.au.dk/chili/PBI/pythonpath.html) – BorrajaX

+0

thnx для урского комментария, но я не эксперт в python, поэтому я должен командовать (venv) peg @ peg: ~/myapplication/test $ export PYTHONPATH = $ {PYTHONPATH}:/users/[ваше имя пользователя]/myapplication/test/??? @BorrajaX – LiLi

+0

Почти. Попробуйте: 'export PYTHONPATH = $ {PYTHONPATH}:/users/[ваше имя пользователя]/myapplication /' Ваш 'app' модуль (или каталог) находится под'/myapplication/'. Дайте нам знать, что происходит – BorrajaX

ответ

6

Из комментариев:

Там может быть два вопроса:

  1. Путь к myapplication/ не была добавлена ​​к переменной $PYTHONPATH среды (подробнее here и here) Скажем жизнь кода под /home/peg/myapplication/. Вам необходимо ввести свой терминал export PYTHONPATH=${PYTHONPATH}:/home/peg/myapplication/

  2. __init__.py, возможно, была опечатка. Там не должно быть пробелы между символами подчеркивания __ и init.py кусок (__init__.py хорошо, __ init __.py не является)

+4

У меня такая же точная ошибка, но это решение не сработало для меня. – ifconfig