首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“rest_framework_nested.routers”错误仅限于码头

“rest_framework_nested.routers”错误仅限于码头
EN

Stack Overflow用户
提问于 2021-12-09 20:38:28
回答 1查看 230关注 0票数 0

我正试图通过docker部署Django应用程序,但遇到了这个问题。当我在本地运行我的应用程序时,我没有问题,但是当我部署到Docker时,我得到了以下错误:

AttributeError: module 'rest_framework_nested.routers' has no attribute 'NestedDefaultRouter'

堆栈跟踪的最后一行如下所示:

代码语言:javascript
运行
复制
  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 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/= /app/store/urls.py", line 13, in <module>
    modules_router = routers.NestedDefaultRouter(router, 'modules', lookup='module')
AttributeError: module 'rest_framework_nested.routers' has no attribute 'NestedDefaultRouter'

错误产生的文件如下所示:

代码语言:javascript
运行
复制
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from rest_framework_nested import routers
from . import views

router = DefaultRouter()
router.register('modules', views.ModuleViewSet, basename='modules')

modules_router = routers.NestedDefaultRouter(router, 'modules', lookup='module')

我的Dockerfile看起来如下:

代码语言:javascript
运行
复制
FROM python:3.9.9-slim

#Set up user
RUN apt-get update
RUN apt-get -y install sudo
RUN addgroup app && adduser -system app -ingroup app
USER app
WORKDIR = /app

#Environment settings`
ENV PYTHONUNBUFFERED=1

#Install MySQL and dependencies
RUN sudo apt-get -y install python3.9-dev
RUN sudo apt-get -y install default-libmysqlclient-dev
RUN sudo apt-get -y install build-essential libssl-dev libffi-dev
RUN sudo apt-get -y install libxml2-dev libxslt1-dev zlib1g-dev
RUN pip install mysqlclient
RUN sudo apt-get -y install default-mysql-server
RUN sudo apt-get -y install gunicorn3

#Copy files and install other dependencies
COPY . .
RUN pip3 install -r requirements.txt

我已经拖了好几个小时的网了,没有运气。似乎有点反常,除非我错过了一些很明显的东西。

在本地运行相同的代码库、相同的设置、文件等都是没有问题的。而且,是的,drf-nested-routers==0.93.4在需求文件中。当我在docker环境中运行pip3 install drf-nested-routers时,我发现需求已经满足了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-10 12:30:53

所以我设法找到了这个问题。

NestedDefaultRouterrest_framework_nested中随安装drf-nested-routers包而来的一种方法。出于某种原因,我还安装了django-rest-framework-nested包。这似乎就是问题所在。卸载django-rest-framework-nested后,映像将无问题地启动。

它在本地工作,而不是在Docker工作,这很可能是一个安装顺序问题。不管怎样,现在修好了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70296427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档