flask无法在服务器上下文中导入模块

时间:2016-08-14 19:41:05

标签: python flask

当我尝试在服务器上部署基于flask,sqlalchemy的应用程序时遇到一个奇怪的导入错误。当我在我的localhost上运行它时,该应用程序运行良好。但是,当我在服务器上运行应用程序时,它会引发导入错误。我怀疑我的问题的原因是循环导入。但它真的很奇怪它适用于本地环境但在服务器环境中失败。

我的文件结构如下所示:

.
├── __main__.py
├── instance
│   ├── config.cfg
├── theapp
│   ├── __init__.py
│   ├── models.py
│   └── views.py

初始化的.py

# File for initializing the application and set up global variables(app, db)


...
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)
CONFIG_FILE = os.path.join(app.instance_path, 'config.cfg')

# Instantiate the application and initializes the login manager.
def create_app(app, config):
    app.config.update(SECRET_KEY=config['key']['SECRET_KEY'], SQLALCHEMY_DATABASE_URI=config['app']['SQLALCHEMY_DATABASE_URI'],
                      DEBUG=config['app']['DEBUG'])

# Read configuration
config = ConfigParser()
config.read(CONFIG_FILE)
create_app(app, config)
db = SQLAlchemy(app)

# These imports are useful. They help to avoid cyclic import
from lemur import views, models

views.py

from theapp import (app, db)
...

models.py

from theapp import db
...

主要的.py

from theapp import app
if __name__ == '__main__':
    app.run()

错误是(在views.py中):

cannot import name models

我尝试了一种建议here的方法,但它不起作用。

0 个答案:

没有答案