Почему имя пакета должно быть включено в эту инструкцию по импорту? [дубликат]
Чтобы все настроить, вот моя структура каталогов для моего проекта Django:
RecallThatMovie
|
|-- RecallThatMovie
| |
| |-- __pycache__ (directory)
| |
| |-- __init__.py
| |
| |-- asgi.py
| |
| |-- myconfig.py
| |
| |-- settings.py
| |
| |-- urls.py
| |
| |-- wsgi.py
|
|-- db.sqlite3
|
|-- manage.py
и у меня есть этот код в верхней части файла settings.py :
"""
Django settings for RecallThatMovie project.
Generated by 'django-admin startproject' using Django 5.1.5.
"""
import myconfig
from pathlib import Path
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/5.1/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = myconfig.SECRET_KEY
Когда я запускаю python manage.py Я получаю эту ошибку:
File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 1026, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "C:\Users\jaull\Documents\RecallThatMovie\RecallThatMovie\settings.py", line 13, in <module>
import myconfig
ModuleNotFoundError: No module named 'myconfig'
Однако, когда я меняю: импортировать myconfig на это: импортируйте этот фильм.myconfig:
И строка с СЕКРЕТНЫМ КЛЮЧОМ к этому: СЕКРЕТНЫЙ КЛЮЧ = Вспомните этот фильм.моя конфигурация.СЕКРЕТНЫЙ КЛЮЧ
Тогда сервер Django заработает, когда я сделаю: python manage.py runserver
Почему так? Я имею в виду, что settings.py и myconfig.py находятся в одном каталоге, или, точнее, в одном пакете.