Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django ViewSet ModuleNotFoundError:没有名为';项目名称';_Python_Django_Url_Path_Project - Fatal编程技术网

Python Django ViewSet ModuleNotFoundError:没有名为';项目名称';

Python Django ViewSet ModuleNotFoundError:没有名为';项目名称';,python,django,url,path,project,Python,Django,Url,Path,Project,我试图使用ModelViewSet来显示用户,但出于某种原因,Django似乎不喜欢在project/url.py中导入UserViewSet。这似乎是一个相当愚蠢的错误,但我已经坚持了一段时间,这是令人沮丧的。据我所知,代码中没有任何错误,并且导入功能完全正常。我错过什么了吗 Django版本2.2.13 project/url.py from django_backend.user_profile.views import UserViewSet router = routers.Defa

我试图使用ModelViewSet来显示用户,但出于某种原因,Django似乎不喜欢在project/url.py中导入UserViewSet。这似乎是一个相当愚蠢的错误,但我已经坚持了一段时间,这是令人沮丧的。据我所知,代码中没有任何错误,并且导入功能完全正常。我错过什么了吗

Django版本2.2.13

project/url.py

from django_backend.user_profile.views import UserViewSet

router = routers.DefaultRouter()
router.register('user', UserViewSet)

urlpatterns = [
    path('accounts/', include(router.urls)),
]
class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()#.order_by('-date_joined')
    serializer_class = UserSerializer
userprofile/views.py

from django_backend.user_profile.views import UserViewSet

router = routers.DefaultRouter()
router.register('user', UserViewSet)

urlpatterns = [
    path('accounts/', include(router.urls)),
]
class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()#.order_by('-date_joined')
    serializer_class = UserSerializer
错误

from django_backend.user_profile.views import UserViewSet
ModuleNotFoundError: No module named 'django_backend'
项目结构


python解释器在sys.path中列出的目录中搜索模块。Touc应快速打印sys.path,以检查是否列出“reactjs comeon”

根据您运行文件的方式,可能不包括该文件。例如,如果您运行project>pythonurls.py,则不会出现这种情况。您可以手动将目录附加到sys.path作为快速解决方案


一般来说,我建议您仔细阅读

上的相对/绝对导入和打包。从评论中,我们发现您的问题的直接答案是:您正在导入django_后端,这是您项目的根,但不是存在于
sys.path
中的形式,因此不能作为形式导入

由于Django将
sys.path
设置到项目的根目录,因此您需要导入
user\u profile.views
,而不导入
Django\u后端部分:

从用户_profile.view导入用户视图集

一旦您这样做,您可能会考虑配置PyStand以知道<代码> djangoiBe后端文件夹是您的源根目录。这将告诉PyCharm在何处查找Python代码,以便它不会显示从Django目录导入模块时出现的错误。

Django_backend.user_profile.views导入UserViewSet的
是什么?您的问题是
UserViewSet
位于
userprofile/views.py
中,那么
django\u后端是什么呢?@KenKinder可以查看项目结构。整个django项目位于django_后端。我使用react作为前端。它是Python路径中的Python包吗?@KenKinder它不是Python包。前端和后端完全分开运行。好吧,这是你的答案。当您导入任何内容时,它必须是同一目录中的模块或
sys.path
中的python包。谢谢您的建议。打印sys.path确实显示了正确的结构:['C:\\Users\\…\\reactjs-comeon1\\django\u backend'Python正在列出的目录中搜索名为“django\u backend”backend的模块。请尝试仅导入user\u profile.views。这似乎可行,但PyCharm将其显示为错误。奇怪!