我正在关注山羊测试书。我遇到了以下问题。
我正在使用python manage.py runserver
运行django服务器。
但是我遇到了这个错误。
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/andykw/cloned_projects/unit-tests/superlists/superlists/urls.py", line 19, in <module>
from lists import views
ModuleNotFoundError: No module named 'lists'
我知道应用views.py
中有list
这就是我在urls.py
from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from lists import views
urlpatterns = ['lists.views',
#path('admin/', admin.site.urls),
url(r'^$', views.home_page,name='home'),
]
任何想法都非常受欢迎。
这是我的项目的树形结构
├── func_tests.py
├── geckodriver.log
├── lists
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ ├── __init__.py
│ │ └── __pycache__
│ │ └── __init__.cpython-36.pyc
│ ├── models.py
│ ├── __pycache__
│ │ ├── __init__.cpython-36.pyc
│ │ ├── tests.cpython-36.pyc
│ │ └── views.cpython-36.pyc
│ ├── tests.py
│ └── views.py
├── README.md
├── requirements.txt
└── superlists
├── manage.py
└── superlists
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-36.pyc
│ ├── settings.cpython-36.pyc
│ └── urls.cpython-36.pyc
├── settings.py
├── urls.py
└── wsgi.py
答案 0 :(得分:1)
尝试指定包含根应用名称的路径:
from superlists.lists import views
发布项目结构后,您的lists
Django应用似乎位于项目的根目录(./superlists
)的外部 –它们处于同一级别的嵌套。
As the Django documentation specifies,当您使用manage.py startapp [app-name]
创建新应用时,它会创建一个文件夹,其中包含您的lists
应用的结构,但位于内部是您的第一个{{ 1}}文件夹。这意味着设计上您应该具有以下内容:
superlists
然后我给您的最初答案应该开始起作用。
答案 1 :(得分:1)
lists
文件夹(应用程序)当前位于项目文件夹之外。将其移至superlists
文件夹中。
└── superlists
├── manage.py
├── lists
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
└── superlists
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-36.pyc
│ ├── settings.cpython-36.pyc
│ └── urls.cpython-36.pyc
├── settings.py
├── urls.py
└── wsgi.py
func_tests.py
的位置也很奇怪。