在对终端进行试验之后,很明显,它确实无法知道我main.py
的 .
>>> import os
>>> from flask import Flask, request, session, g, redirect, url_for, abort, render_template, flash
>>> from flask.ext.sqlalchemy import SQLAlchemy
>>> # create the application
>>> app = Flask(__name__)
>>> app.config.from_object(__name__)
>>> app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('DATABASE_URL', 'some-url.com')
>>> db = SQLAlchemy(app)
从那时起,我就能够db
按预期访问该对象。
编辑 - 问题在下面完全解决。
所以我在尝试将我的应用程序代码导入 python shell 时出错的原因有两个:
- 作为我导入目标的 *.py 不在根目录中,我告诉 shell 查找错误的位置。
- 由于我导入的 *.py 没有命名为 app.py (我要求这样做
from app import db
),我还告诉 shell 查找错误的文件。
解决此问题的方法是将我的 *.py 文件的路径附加到 sys.path 而不是from app import db
, us from my_filename_without_the_extenssion import db
。总结一下,shell 收到了这些指令:
>>> import sys
>>> sys.path.append('path/to/my/file')
>>> from my_filename_without_the_extenssion import db
>>> # to test if everythings ok
>>> db