Подтвердить что ты не робот

Ошибка импорта не может импортировать имя execute_manager в среде Windows

Я доберусь до скорости. Я пытаюсь настроить среду Windows. Я успешно установил python, django и virtualenv + virtualenwrapper (установщик windows-cmd)

workon env
Python 2.7.6 (default, Nov 10 2013, 19:24:24) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.VERSION
(1,6,1, 'final',0)
>>> quit()

Но когда я запускаю: python manage.py runserver из моего клонированного репозитория, я получаю эту ошибку:

Traceback (most recent call last)"
File "manage.py", line 2, in (module)
from django.core.management import execute_manager
ImportError: cannot import name execute_manager

Оба python и django добавляются в мою системную переменную PATH:

...C:\Python27\;C:\Python27\Scripts\;C:\PYTHON27\DLLs\;C:\PYTHON27\LIB\;C:\Python27\Lib\site-packages\; 

Я также пробовал это с помощью bash и powershell, и я все равно получаю ту же ошибку.

Это виртуальная проблема? Вопрос о зависимости от Django? Хлоп. Как исправить эту проблему? Помоги мне, Стапокверк-кеноби, моя единственная надежда.

4b9b3361

Ответ 1

execute_manager устарел в Django 1.4 как часть рефакторирования макета проекта и был удален в 1,6 раза за временную шкалу устаревания: https://docs.djangoproject.com/en/1.4/internals/deprecation/#id3

Чтобы исправить эту ошибку, вы должны либо установить совместимую версию Django для проекта, либо обновить стиль manage.py до нового стиля, который не использует execute_manager: https://docs.djangoproject.com/en/stable/releases/1.4/#updated-default-project-layout-and-manage-py Скорее всего, если ваш manage.py несовместим с 1.6, то и остальная часть проекта не будет. Вы должны найти подходящую версию Django для проекта.

Ответ 2

@Марк Лавин прекрасно объяснил, что означает ошибка и как она возникает. Я думаю, что я только что открыл, почему другие могут также получить это сообщение об ошибке, оставив его здесь для записи.

Я предполагаю, что вы запускаете это из виртуальной среды.

При запуске нового проекта Django, если вы запустите django-admin startproject <myproject>, вы вызываете глобальную установку Django. Если, как в моем случае, это происходит из-за устаревшего репо, это может быть старая версия - в моем случае:

>> django-admin --version
>> 1.3.1

Если вы хотите запустить Django из виртуальной среды, вам нужно вызвать его с помощью django-admin.py startproject <myproject>. Таким образом, вы получаете проект Django с версией, соответствующей вашей локальной установке:

>> django-admin.py --version
>> 1.6.6