5

刚刚尝试使用 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'
}

似乎没有任何区别。

4

3 回答 3

5

我认为您的依赖requirements.txt项不够具体,并且重建容器已经安装了更高版本的 djangorestframework。

检查您的 pipfile 中的一行,例如djangorestframework>=3.9,这应该更改为固定特定版本djangorestframework==3.9,或者将其固定到特定的次要版本,这样您仍然会收到错误修复和安全更新djangorestframework>=3.9,<3.10

这些行也可以直接与 pip 一起使用,以防您的容器构建直接使用 pip,例如pip install "djangorestframework>=3.9,<3.10"

于 2019-07-16T03:25:53.763 回答
0
 pip3 install packaging

解决这个问题!

于 2019-09-12T09:44:49.247 回答
0

似乎单独安装 coreapi 可能会有所帮助:pip install coreapi

于 2022-02-03T09:58:28.840 回答