【问题标题】:ImportError: No module named appImportError:没有名为应用程序的模块
【发布时间】:2015-02-19 20:20:31
【问题描述】:

我使用 Flask-Testing 并制作文件 test_app.py 进行测试但我收到此错误文件“test_app.py”,第 4 行,在 from app import create_app, db ImportError: No module named 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')

__ 初始化 __.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

【问题讨论】:

  • 您可能需要将您的myapplication/ 目录添加到$PYTHONPATH(参见users-cs.au.dk/chili/PBI/pythonpath.html
  • 谢谢你的评论,但我不是 python 专家,所以我应该命令 (venv)peg@peg:~/myapplication/test$ export PYTHONPATH=${PYTHONPATH}:/users/[你的用户名] /我的应用程序/测试/ ??? @BorrajaX
  • 差不多。试试:export PYTHONPATH=${PYTHONPATH}:/users/[your username]/myapplication/ 你的app 模块(或目录)在/myapplication/ 下。让我们知道会发生什么
  • 我的意思是......只是为了清楚......添加到$PYTHONPATH的路径是myapplication目录的完整路径。假设它在/home/borrajax/Documents/Python/myapplication/ 下,那么您将使用export PYTHONPATH=${PYTHONPATH}:/home/borrajax/Documents/Python/myapplication/(不过,这可能因装有 Windows 的机器而异)
  • 等等...__ init.py __' and another one between init.py` 中的两个下划线和init 以及最后两个下划线之间有一个空格。那是一种类型还是你的计算机中的那种类型? '因为它不应该有空格 __ init.py __ 是不正确的。 __init.py__ 是。

标签: python flask python-import flask-testing


【解决方案1】:

来自cmets:

可能有两个问题:

  1. myapplication/ 的路径尚未添加到$PYTHONPATH 环境变量中(更多信息herehere) 假设代码位于/home/peg/myapplication/ 下。您需要在终端输入 export PYTHONPATH=${PYTHONPATH}:/home/peg/myapplication/

  2. __init__.py 可能有错字。下划线 __ 和 init.py 块之间不应有空格(__init__.py 好,__ init __.py 不好)

【讨论】:

  • 我有同样的错误,但这个解决方案对我不起作用。
  • 谢谢这个解决方案对我有用。在 Amazon EC2 Ubuntu 上部署 python 脚本。
猜你喜欢
  • 2017-01-24
  • 2018-03-10
  • 2017-12-17
  • 2016-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-20
  • 2018-03-26
相关资源
最近更新 更多