ImportError:无法找到在导入的模块中定义的类

时间:2019-02-13 00:45:16

标签: python-3.6 python-import importerror

我有一个烧瓶应用程序正在尝试测试,但是遇到导入错误,这使我慢慢地丧命。这是经典的“一个小时前完成的工作,现在还没有。”

我的包裹结构是这样的:

__init__.py
main.py
  /tasks
    email_utils.py
    send_api.py
    __init__.py

send_api.py包含一个名为SendEmail的类,我正尝试从main.py导入该类以添加为资源,如下所示:

from tasks.send_api import SendEmail

这将导致ImportError。我也尝试过

from tasks import send_api
app = Flask(__name__)
api = Api(app)
api.add_resource(send_api.SendEmail, '/send')

,但最后一行抛出AttributeError,表示SendEmail不是send_api的属性。如果我只是在导入send_api之后放入一个断点并使用dir(send_api)对其进行检查,则该类名称不会显示在属性中,除了某些导入之外,其他任何全局vars /类也不会显示。我也很奇怪,PyCharm似乎将SendEmail识别为send_api类,并且没有给我任何警告。

send_api.py的结构如下

from flask_restful import Resource
from flask_restful import abort as fr_abort
from werkzeug.wrappers import BaseResponse as Response

from customexceptions import MissingEnvironmentVariables
from tasks import email_utils

class SendEmail(Resource):
    #class logic here

如果我只是从main.py和dir(send_api)中的任务中导入send_api,那么我得到的唯一有意义的结果是MissingEnvironmentVariables,Resource,Response和fr_abort(除了email_utils之外,所有在send_api.py中导入的东西,看起来像它应该会显示。甚至email_utils似乎也不会被拾取。

我已经花了一段时间了,实际上只是不知道如何解决这个问题。对于我来说,从send_api.py导入email_utils.py我必须做​​

from tasks import email_utils

import email_utils

import .email_utils

似乎也不起作用。

对于冗长的帖子,我们深表歉意。如果有明显我做错的事情,或者给我一个相关的问题会有所帮助,请告诉我。

0 个答案:

没有答案