我正在尝试使用混合器为一个由Flask+SQLAlchemy驱动的网站生成测试数据。
我在我的项目的根目录中创建了一个名为generate_test_data.py的文件,如下所示:
# -*- coding: utf-8 -*-
import app
from mixer.backend.flask import mixer
from models import *
def generate_test_data():
user = mixer.blend(Users)
if __name__ == "__main__":
generate_test_data()然而,每次运行该文件时,都会收到以下错误:
Traceback (most recent call last):
File "generate_test_data.py", line 3, in <module>
import app
ImportError: No module named app我是用正确的virtualenv激活的。
更新
我的项目结构如下:
/
- generate_test_data.py
- app/
-- __init__.py
-- models.py**最新情况**
我的__init__.py
# -*- coding: utf-8 -*-
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.uwsgi_websocket import GeventWebSocket
from config import REDIS_HOST, REDIS_PORT
import redis
app = Flask(__name__)
db = SQLAlchemy(app)
ws = GeventWebSocket(app)
POOL = redis.ConnectionPool(host=REDIS_HOST, port=REDIS_PORT, db=0)
redis = redis.Redis(connection_pool=POOL)
from app import views, models发布于 2014-03-19 16:28:04
我会重新构造你的项目结构如下:
myproject/
generate_test_data.py
__init__.py
models.py然后,在你的generate_test_data.py中,你可以
from myproject import app这将更好,因为您要删除任何名称冲突。此外,您正在显式导入您真正想要的应用程序变量。当然,您可以将"myproject“命名为您想要的任何名称,但为了安全起见,不要将其命名为"app”。
https://stackoverflow.com/questions/22510602
复制相似问题