我尝试将https://github.com/axnsan12/drf-yasg这个库添加到我们的django应用程序中,并得到下面的错误。
permission_classes=(permissions.AllowAny,),
File "/env/lib/python3.7/site-packages/drf_yasg/views.py", line 67, in get_schema_view
_generator_class = generator_class or swagger_settings.DEFAULT_GENERATOR_CLASS
File "env/lib/python3.7/site-packages/drf_yasg/app_settings.py", line 122, in __getattr__
val = perform_import(val, attr)
File "env/lib/python3.7/site-packages/rest_framework/settings.py", line 166, in perform_import
return import_from_string(val, setting_name)
File "env/lib/python3.7/site-packages/rest_framework/settings.py", line 180, in import_from_string
raise ImportError(msg)
ImportError: Could not import 'drf_yasg.generators.OpenAPISchemaGenerator' for API setting 'DEFAULT_GENERATOR_CLASS'. ImportError: cannot import name 'URLPattern' from 'rest_framework.compat' (env/lib/python3.7/site-packages/rest_framework/compat.py).
经过一番研究,我发现有些人建议安装这个软件包来解决这个问题
pip3 install packaging
但是这并没有什么不同,还有其他好的API文档库可以用于djangorestapi吗?
4条答案
按热度按时间hjzp0vay1#
更新
此问题已在
drf-yasg==1.20.0
--(Release notes)中修复,因此您可以通过以下方式升级到最新版本原始答案
drf-yasg-(#641)中有一个未决问题需要解决。遗憾的是,鉴于自2020年2月以来没有任何活动,该项目已不再维护(参考此)。
但是,@JoelLefkowitz创建了该项目的一个分支,它在名为drf-yasg2的文件中可用,该文件已修复OP的问题。
您需要做的是从
drf-yasg
迁移到drf-yasg2
--(ReadTheDoc)安装
并将其添加到**
INSTALLED_APPS
**部分whhtz7ly2#
看起来DRF从
3.12
版本开始就没有rest_framework.compat.URLPattern
,并且drf-yasg还没有赶上这一点。请确保您的DRF版本低于3.12。例如:pip install djangorestframework==3.11.2
roejwanj3#
它肯定可以帮助你们在settings.py文件中编写以下内容:
型锻设置= {“默认发生器等级”:“rest_framework.架构.生成器.基本架构生成器”,}
vc6uscn94#
管道安装drf-yasg -U
∮这对我有用∮