ImportError: Module “drf_yasg.generators“ does not define a “OpenAPISchemaGenerator“ attribute/class

最近在做nlp提取任务时,要用到远程连接服务,进行数据标注。

在启动服务的时候,报出这个错误:

PS D:\Pycharm\文件\研究生期间项目> doccano task                                                         
Starting task queue.
Traceback (most recent call last):
  File "d:\python\软件\lib\site-packages\django\utils\module_loading.py", line 30, in import_string
    return cached_import(module_path, class_name)
  File "d:\python\软件\lib\site-packages\django\utils\module_loading.py", line 15, in cached_import
    module = import_module(module_path)
  File "d:\python\软件\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 790, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "d:\python\软件\lib\site-packages\drf_yasg\generators.py", line 19, in <module>
    from .inspectors.field import get_basic_type_info, get_queryset_field, get_queryset_from_view
  File "d:\python\软件\lib\site-packages\drf_yasg\inspectors\__init__.py", line 5, in <module>
    from .field import (
  File "d:\python\软件\lib\site-packages\drf_yasg\inspectors\field.py", line 406, in <module>
    (serializers.NullBooleanField, (openapi.TYPE_BOOLEAN, None)),
AttributeError: module 'rest_framework.serializers' has no attribute 'NullBooleanField'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "d:\python\软件\lib\site-packages\rest_framework\settings.py", line 178, in import_from_string
    return import_string(val)
  File "d:\python\软件\lib\site-packages\django\utils\module_loading.py", line 32, in import_string
    raise ImportError(
ImportError: Module "drf_yasg.generators" does not define a "OpenAPISchemaGenerator" attribute/class

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "d:\python\软件\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "d:\python\软件\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "D:\Python\软件\Scripts\doccano.exe\__main__.py", line 7, in <module>
  File "d:\python\软件\lib\site-packages\backend\cli.py", line 160, in main
    args.handler(args)
  File "d:\python\软件\lib\site-packages\backend\cli.py", line 110, in command_run_task_queue
    app.worker_main(argv=argv)
  File "d:\python\软件\lib\site-packages\celery\app\base.py", line 391, in worker_main
    self.start(argv=argv)
  File "d:\python\软件\lib\site-packages\celery\app\base.py", line 371, in start
    celery.main(args=argv, standalone_mode=False)
  File "d:\python\软件\lib\site-packages\click\core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "d:\python\软件\lib\site-packages\click\core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "d:\python\软件\lib\site-packages\click\core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "d:\python\软件\lib\site-packages\click\core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "d:\python\软件\lib\site-packages\click\decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "d:\python\软件\lib\site-packages\celery\bin\base.py", line 134, in caller
    return f(ctx, *args, **kwargs)
  File "d:\python\软件\lib\site-packages\celery\bin\worker.py", line 343, in worker
    worker = app.Worker(
  File "d:\python\软件\lib\site-packages\celery\worker\worker.py", line 94, in __init__
    self.app.loader.init_worker()
  File "d:\python\软件\lib\site-packages\celery\loaders\base.py", line 111, in init_worker
    self.import_default_modules()
  File "d:\python\软件\lib\site-packages\celery\loaders\base.py", line 105, in import_default_modules
    raise response
  File "d:\python\软件\lib\site-packages\celery\utils\dispatch\signal.py", line 276, in send
    response = receiver(signal=self, sender=sender, **named)
  File "d:\python\软件\lib\site-packages\celery\fixups\django.py", line 82, in on_import_modules
    self.worker_fixup.validate_models()
  File "d:\python\软件\lib\site-packages\celery\fixups\django.py", line 121, in validate_models
    run_checks()
  File "d:\python\软件\lib\site-packages\django\core\checks\registry.py", line 88, in run_checks
    new_errors = check(app_configs=app_configs, databases=databases)
  File "d:\python\软件\lib\site-packages\django\core\checks\urls.py", line 14, in check_url_config
    return check_resolver(resolver)
  File "d:\python\软件\lib\site-packages\django\core\checks\urls.py", line 24, in check_resolver
    return check_method()
  File "d:\python\软件\lib\site-packages\django\urls\resolvers.py", line 494, in check
    for pattern in self.url_patterns:
  File "d:\python\软件\lib\site-packages\django\utils\functional.py", line 57, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
    _generator_class = generator_class or swagger_settings.DEFAULT_GENERATOR_CLASS
  File "d:\python\软件\lib\site-packages\drf_yasg\app_settings.py", line 122, in __getattr__
    val = perform_import(val, attr)
  File "d:\python\软件\lib\site-packages\rest_framework\settings.py", line 167, in perform_import
    return import_from_string(val, setting_name)
  File "d:\python\软件\lib\site-packages\rest_framework\settings.py", line 181, in import_from_string
    raise ImportError(msg)
ImportError: Could not import 'drf_yasg.generators.OpenAPISchemaGenerator' for API setting 'DEFAULT_GENERATOR_CLASS'. ImportError: Module "drf_yasg.generators" does not define a "OpenAPISchemaGenerator" attribute/class.

试了好多方法包括修改settings.py都不行,都显示这个错误:

ImportError: Module "drf_yasg.generators" does not define a "OpenAPISchemaGenerator" attribute/class

然鹅回头去看 drf_yasg.generators 这个包:

不是有这个类吗,迷惑了,然后往上翻发现这个错误:

AttributeError: module 'rest_framework.serializers' has no attribute 'NullBooleanField'

进到 rest_framework.serializers 里一看:

 NullBooleanFiel 和 BooleanField 也没区别啊?

于是进入最后一个报错的目录:

File "D:\Pycharm\文件\提取任务\venv\lib\site-packages\drf_yasg\inspectors\field.py", line 406, in <module>
    (serializers.NullBooleanField, (openapi.TYPE_BOOLEAN, None))

(serializers.NullBooleanField, (openapi.TYPE_BOOLEAN, None))

修改成

(serializers.BooleanField, (openapi.TYPE_BOOLEAN, None))

最后运行:

成功!!!

连接远程服务:

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值