Ответ 1
Вам нужно добавить пустой файл __init__.py
(всего 4 подчеркивания) в папку apps
, чтобы Python распознал его как пакет.
Посмотрите документацию для получения дополнительной информации.
Я только что проверил проект с помощью git. Структура проекта
project
apps
myapp
settings
__init__.py
__init__.py
manage.py
Существуют другие каталоги и файлы, но я думаю, что это важные.
Когда я запускаю сервер, я получаю
Traceback (most recent call last):
File "C:/Dev/project/apps/manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 385, in execute_from_command_line
utility.execute()
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 345, in execute
settings.INSTALLED_APPS
File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 46, in __getattr__
self._setup(name)
File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 42, in _setup
self._wrapped = Settings(settings_module)
File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 98, in __init__
% (self.SETTINGS_MODULE, e)
ImportError: Could not import settings 'apps.myapp.settings' (Is it on sys.path? Is there an import error in the settings file?): No module named apps.myapp.settings
При запуске manage.py check
я получаю ImportError: No module named apps.
, поэтому, я думаю, проблема не имеет ничего общего с моим модулем настройки, а с моим каталогом приложений.
Я не уверен, почему он не может найти мои приложения для модулей, потому что проект находится на моем sys.path
, а директив apps
, очевидно, существует. Поскольку я не очень опытен как разработчик Python, я сам не нахожу решение.
Вам нужно добавить пустой файл __init__.py
(всего 4 подчеркивания) в папку apps
, чтобы Python распознал его как пакет.
Посмотрите документацию для получения дополнительной информации.
Обратите внимание, что в Django 1.9 существует модуль django.apps
Как правило, рекомендуется избегать конфликтов имен со встроенными модулями
Если вы использовали команду django-admin startapp myapp
, она создаст этот файл: myapp/apps.py
.
Это может конфликтовать с вашей папкой модуля apps/
. Скрытый файл apps.pyc
может быть в вашей папке myapp/
.
Попробуйте удалить их:
project/apps/myapp/apps.py
project/apps/myapp/apps.pyc
Это также может произойти, если вы установили свое приложение в settings.py
в основной папке проекта, прежде чем запускать это:
python manage.py startapp [app-name]
Закомментируйте, создайте приложение (должно работать сейчас), затем верните строку в файл settings.py
и продолжайте.
Обратите внимание, что в Django 1.9
вы можете добавить свое приложение в список INSTALLED_APPS
.
Если ваше приложение называется app
и вы создали в нем модели, перейдите в файл settings.py
и добавьте ваше приложение:
INSTALLED_APPS = [
...
'app'
]
Сначала проверьте manage.py
и убедитесь, что он имеет правильную ссылку на myapp
.
... приложение /MyApp/manage.py
...
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")
...
Если настройки верны, проверьте интерпретатор Python. Если вы используете virtualenv, ошибки могут возникать, когда вы используете глобальный Python вместо виртуальной среды. Использование глобального Python может быть вызвано неправильной настройкой вашей IDE, ошибкой пользователя или неверным bin/bash в manage.py
.
Чтобы убедиться, что manage.py
работает в виртуальной среде, проверьте первую строку в manage.py
. По умолчанию файл выглядит так:
#!/usr/bin python
Измените это на:
#!/path/to/virtualenv/bin python
Теперь проверьте Терминал и какую версию Python он использует. Затем активируйте virtualenv:
[[email protected]] #: source /path/to/virtualenv/bin/activate
(venv) [[email protected]] #: pip list
Подтвердите, что Django установлен. Если это так и все еще не работает должным образом, обновите его с помощью pip
:
(venv) [[email protected]] #: pip install --upgrade django
Если ничего из вышеперечисленного не работает, хотя версия Python верна, вы используете правильную среду Python, и manage.py
настроен правильно, то это означает, что ошибка в другом месте.
Команда: python manage.py startapp app_name
Имя класса должно совпадать с app_name
в файле models.py
, а затем добавить свой app_name
в список INSTALLED_APPS
в settings.py
.
Если вы используете эту команду для запуска приложения:
django-admin startapp appexample
... тогда класс AppexampleConfig
не должен быть указан в файле settings.py
.
Просто добавьте название приложения (например, appexample
) в список INSTALLED_APPS
. Избегайте использования: appexample.app.AppexampleConfig
.
Обычно класс AppexampleConfig
является подклассом класса django.apps.Appconfig
, который представляет приложение Django и его конфигурацию. Он просто определяет атрибут имени класса и устанавливает его значение Appexample
.
Я преодолел эту проблему после запуска python3 manage.py runserver
вместо python manage.py runserver
Потратил 25 минут на это...
Пожалуйста, убедитесь, что ваше приложение находится в корневом каталоге вашего проекта. Под этим я подразумеваю, что если по ошибке вы запустите приложение за пределами основного каталога, Django не сможет найти ваше приложение, и единственное решение - переместить его в главный каталог вашего проекта. На скриншотах показано, как решить проблему введите описание изображения здесь первые изображения показывают, что желание также выдает эту ошибку, что ваши приложения еще не загружены при запуске приложения.
Второй скриншот показывает, как решить проблему. введите описание изображения здесь Это то, что я имею в виду, что приложение должно находиться в том же каталоге основного проекта. В моем случае мой основной каталог - это crmapp.