Django Rest Framework Swagger 停止工作
Django Rest Framework Swagger stopped working
刚刚尝试用 DRF 和 drf-yasg 重建一个容器。完全相同的提交很好地通过了所有测试,但现在由于以下异常而失败:
ImportError: Could not import 'rest_framework.schemas.coreapi.AutoSchema' for API setting 'DEFAULT_SCHEMA_CLASS'. ModuleNotFoundError: No module named 'rest_framework.schemas.coreapi'.
没有其他变化,但似乎包含了一个更新的包,它破坏了 Swagger 生成器。
还有其他人有类似经历吗?
所以 pip 似乎正在拉动 DRF V3.10,它有一些从 CoreAPI 到 OpenAPI 的切换:https://www.django-rest-framework.org/community/3.10-announcement/。添加发布文档中的行:
REST_FRAMEWORK = {
...
'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema'
}
似乎没有任何区别。
我认为您在 requirements.txt
中的依赖关系不够具体,并且重建容器已经安装了更高版本的 djangorestframework。
检查您的 pipfile 中的一行,如 djangorestframework>=3.9
,这应该更改为固定特定版本 djangorestframework==3.9
,或将其固定到特定的次要版本,这样您仍然会收到错误修复和安全更新 djangorestframework>=3.9,<3.10
.
这些行也可以直接与 pip 一起使用,以防您的容器构建直接使用 pip,例如pip install "djangorestframework>=3.9,<3.10"
pip3 install packaging
解决!
看来单独安装 coreapi 可能会有帮助:pip install coreapi
刚刚尝试用 DRF 和 drf-yasg 重建一个容器。完全相同的提交很好地通过了所有测试,但现在由于以下异常而失败:
ImportError: Could not import 'rest_framework.schemas.coreapi.AutoSchema' for API setting 'DEFAULT_SCHEMA_CLASS'. ModuleNotFoundError: No module named 'rest_framework.schemas.coreapi'.
没有其他变化,但似乎包含了一个更新的包,它破坏了 Swagger 生成器。
还有其他人有类似经历吗?
所以 pip 似乎正在拉动 DRF V3.10,它有一些从 CoreAPI 到 OpenAPI 的切换:https://www.django-rest-framework.org/community/3.10-announcement/。添加发布文档中的行:
REST_FRAMEWORK = {
...
'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema'
}
似乎没有任何区别。
我认为您在 requirements.txt
中的依赖关系不够具体,并且重建容器已经安装了更高版本的 djangorestframework。
检查您的 pipfile 中的一行,如 djangorestframework>=3.9
,这应该更改为固定特定版本 djangorestframework==3.9
,或将其固定到特定的次要版本,这样您仍然会收到错误修复和安全更新 djangorestframework>=3.9,<3.10
.
这些行也可以直接与 pip 一起使用,以防您的容器构建直接使用 pip,例如pip install "djangorestframework>=3.9,<3.10"
pip3 install packaging
解决!
看来单独安装 coreapi 可能会有帮助:pip install coreapi