【发布时间】:2016-12-21 06:19:02
【问题描述】:
我有以下 Flask 代码,文件 __init__.py:
from flask import Flask
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from flask_sqlalchemy_session import flask_scoped_session
from . import configmodule
app = Flask(__name__)
engine = create_engine(configmodule.DevelopmentConfig.SQLALCHEMY_DATABASE_URI) # <--- THIS WORKS
session_factory = sessionmaker(bind=engine)
session = flask_scoped_session(session_factory, app)
app.config.from_object('configmodule.DevelopmentConfig') # <--- THIS FAILS IN Python 3
...
configmodule.py 文件与上面的 __init__.py 位于同一目录中。
使用 python 3.5.2 运行它后,我得到:
werkzeug.utils.ImportStringError: import_string() failed for 'configmodule.DevelopmentConfig'. Possible reasons are:
- missing __init__.py in a package;
- package or module path not included in sys.path;
- duplicated package or module name taking precedence in sys.path;
- missing module, class, function or variable;
Debugged import:
- 'configmodule' not found.
这个错误是针对代码sn-p的最后一行:
app.config.from_object('configmodule.DevelopmentConfig') # <--- THIS FAILS IN Python 3
我在 Python 2 上运行它没有问题。知道如何让它在 Python 3 上运行吗?谢谢。
【问题讨论】:
标签: python python-3.x flask