/ / ImportError: Немає модуля з іменем TestModel при використанні manag.py для runserver - python, django, module

ImportError: відсутність модуля під назвою TestModel при використанні manage.py для runerver - python, django, module

Я користувач Django створюю проект під назвою testdj, а також в ньому я створив додаток з назвою TestModel, дивіться моє дерево:

aircraftdeMacBook-Pro:TestPython ldl$ tree testdj/
testdj/
├── db.sqlite3
├── manage.py
├── templates
│   ├── base.html
│   ├── ext-1.html
│   ├── hello.html
│   └── index.html
└── testdj
├── TestModel
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── __init__.py
├── __init__.pyc
├── helloworld.py
├── settings.py
├── settings.pyc
├── urls.py
├── urls.pyc
├── view.py
├── view.pyc
├── wsgi.py
└── wsgi.pyc

Але коли я cd до testdj/ каталог, я хочу запустити сервер wsgi:

$ python manage.py runserver

Я отримую помилку нижче:

Unhandled exception in thread started by <function wrapper at 0x10b80ede8>
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/utils/autoreload.py", line 227, in wrapper
fn(*args, **kwargs)
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/core/management/commands/runserver.py", line 117, in inner_run
autoreload.raise_last_exception()
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/utils/autoreload.py", line 250, in raise_last_exception
six.reraise(*_exception)
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/utils/autoreload.py", line 227, in wrapper
fn(*args, **kwargs)
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/apps/config.py", line 94, in create
module = import_module(entry)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named TestModel

Він говорить ImportError: No module named TestModel в цьому.


В testdj/testdj/settins.py, Я додав TestModel як APP:

INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"TestModel",
]

Відповіді:

1 для відповіді № 1

Брат брато, чому ти не дотримуєшся жодного підручника? ти заплутався

папка програми та основна папка testdj будуть там, де у вас є manage.py,

на цьому етапі ви вставили тестову модель в папку testdj, куди settings.py є,

тож вийміть його та поставте на місце Manag.py всю папку,

потім біжи

python manage.py runserver

0 для відповіді № 2

Це (https://stackoverflow.com/a/44673465/6563567) буде працювати, але перемістити додаток неправильнодо рівня settings.py. Ви просто повинні сказати django, де знайти програми. Оскільки ваші програми не знаходяться на рівні Manag.py, ваші встановлені програми повинні виглядати так:

INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"testdj.TestModel",
]

Далі ви можете додати "testdj" у встановлені додаткиякщо ви хочете додати файл views.py на рівні налаштувань. Пам’ятайте, що ваш додаток є пакетом python, і кожен файл всередині програми є модулем python, і саме тому django використовує їх.