Ошибка импорта не может импортировать имя 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, и я все еще получаю ту же ошибку.
Это вопрос, связанный с virtualenv? Вопрос зависимости от Джанго? Хлоп. Как мне исправить эту проблему? Помоги мне Stackru-kenobi, твоя единственная надежда.
3 ответа
execute_manager
устарел в Django 1.4 как часть рефакторинга макета проекта и был удален в 1.6 за временную шкалу устаревания: https://docs.djangoproject.com/en/1.4/internals/deprecation/
Чтобы исправить эту ошибку, вы должны либо установить совместимую версию Django для проекта, либо обновить manage.py
новому стилю, который не использует execute_manager
: https://docs.djangoproject.com/en/stable/releases/1.4/ Скорее всего, если ваш manage.py
не совместим с 1.6, тогда как и остальная часть проекта. Вы должны найти подходящую версию Django для проекта.
@ Марк Лавин хорошо объяснил, что означает ошибка и как она возникает. Я думаю, что я только что обнаружил, почему другие могут также получить это сообщение об ошибке, оставляя его здесь для записи.
Я предполагаю, что вы запускаете это из виртуальной среды.
При запуске нового проекта 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
Я получаю эту ошибку, потому что у меня была старая версия django-admin.py
в моем /usr/local/bin
папку, и я забыл создать новый virtualenv для моего нового проекта.
Помните, что шаги для нового проекта должны быть:
- Сначала создайте новый virtualenv для вашего нового проекта:
mkvirtualenv <mynewproj>
- Обновите версию Python для вашего virtualenv, если необходимо:
virtualenv --python $(which python3.6) ~/.virtualenvs/<mynewproj>
- Затем создайте структуру папок вашего проекта Django:
django-admin startproject <django project name>
Я также удалил мою старую устаревшую /usr/local/bin/django-admin.py
потому что он был создан до того, как я обнаружил радости virtualenv
,