我在尝试从heroku python控制台访问PostgreSQL时遇到了一个问题(第一次尝试)。
首先,我使用$ heroku run python
然后我尝试使用>>> from app import db
加载db模块,此操作返回:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named app
我有一个运行python的web dyno有app = Flask(__name__)
,除此之外,我不知道我应该提供什么其他细节以便更清楚地了解这个问题。
答案 0 :(得分:1)
在试验终端之后,很明显,我真的无法知道我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时遇到错误的原因有两个:
from app import db
),我还告诉shell查找错误文件。 解决此问题的方法是将我的* .py文件的路径附加到sys.path而不是from app import db
,我们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