2015-02-19 14 views
7

Pracuję z Flask-Testing i sprawię, że plik test_app.py będzie testowany Ale mam ten błąd Plik "test_app.py", wiersz 4, z importu aplikacji create_app, db ImportError: Brak modułu o nazwie aplikacja. więc proszę o pomoc w jaki sposób mogę to naprawić i co jest problemem Niż :)ImportError: Brak modułu o nazwie app

tutaj jest mój Struktura:

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

Być może trzeba dodać 'MyApplication /' do katalogu '$ PYTHONPATH' (zobacz http://users-cs.au.dk/chili/PBI/pythonpath.html) – BorrajaX

+0

thnx za komentarz, ale nie jestem ekspertem w python, więc powinienem polecić (venv) peg @ peg: ~/myapplication/test $ export PYTHONPATH = $ {PYTHONPATH}:/users/[twoja nazwa użytkownika]/myapplication/test/??? @BorrajaX – LiLi

+0

Prawie. Spróbuj: 'export PYTHONPATH = $ {PYTHONPATH}:/users/[twoja nazwa użytkownika]/myapplication /' Twój moduł '' '' '' '' lub '/' znajduje się w katalogu'/myapplication/'. Daj nam znać, co się stanie – BorrajaX

Odpowiedz

6

Od komentarzach:

Nie mogło być dwie kwestie:

  1. Ścieżka do myapplication/ nie został dodany do zmiennej $PYTHONPATH środowiska (więcej informacji here i here) Powiedzmy życie kodowe pod numerem /home/peg/myapplication/. Musisz wpisać swój terminal może mieć literówkę. Nie powinno być spacji między podkreślenia __ i init.py fragmencie (__init__.py jest dobra, __ init __.py nie jest)

+4

Mam dokładnie ten sam dokładny błąd, ale to rozwiązanie nie działa dla mnie. – ifconfig

Powiązane problemy