0

我在尝试从 heroku python 控制台访问 PostgreSQL 时遇到了一个问题(第一次尝试)。

首先,我使用启动 python$ heroku run python

然后我尝试用 加载 db 模块>>> from app import db,此操作返回:

Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
ImportError: No module named app

我有一个运行 python 的网络测功机app = Flask(__name__),除此之外,我不知道我应该提供哪些其他细节才能更清楚地了解这个问题。

4

1 回答 1

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 时出错的原因有两个:

  1. 作为我导入目标的 *.py 不在根目录中,我告诉 shell 查找错误的位置
  2. 由于我导入的 *.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
于 2013-02-15T09:22:14.143 回答