11

私が構築したのは、Heroku にアップロードする予定の、Flask と Python を使用した単純な Web アプリです。

次のスクリプトを使用して、アプリをローカルで起動する場合:

#!venv/bin/python
from app import app
app.run(debug = True)

次のエラー メッセージが表示されます。

Traceback (most recent call last):
File "./run.py", line 2, in <module>
    from app import app, mail
File "/home/ricardo/personalSite/app/__init__.py", line 3, in <module>
    from app import index
File "/home/ricardo/personalSite/app/index.py", line 6, in <module>
    from emails import send_email
File "/home/ricardo/personalSite/app/emails.py", line 2, in <module>
    from app import app, mail
ImportError: cannot import name mail

そのため、インポートできませんmail

appディレクトリ内にthis があります。インポートに問題を引き起こしているオブジェクト__init__.pyを作成したのは次のとおりです。Mail

from flask import Flask
app = Flask(__name__)
from app import index
from flask.ext.mail import Mail
mail = Mail(app)

そして、これはemails.py私が関数を呼び出すファイルですsend_mail:

from flask.ext.mail import Message
from app import app, mail
from flask import render_template
from config import ADMINS
from decorators import async

したがって、エラー メッセージによると、エラーはこのファイルのfrom app import app, mail.

何が問題ですか?インポートできないのはなぜmailですか?

アップデート:

これは私のディレクトリリストです:

persSite\
  venv\
    <virtual environment files>
  app\
    static\
    templates\
    __init__.py
    index.py
    emails.py
    decorators.oy
  tmp\
  run.py
4

2 に答える 2

0

これはおそらく問題です:

from app import app, mail

ファイル「app/emails.py」では、インポートはネストされたアプリ モジュールではなく、現在のモジュールからのものです。試す:

from . import app, mail

うまくいかない場合は、より詳細なディレクトリ リストで質問を更新する必要があります。

于 2013-10-19T12:45:09.323 に答える