python - not - El error de importación no puede importar el nombre execute_manager en el entorno de Windows
virtualenvwrapper windows (3)
@ Mark Lavin explicó muy bien lo que significa el error y cómo surge. Creo que acabo de descubrir por qué otros también pueden recibir este mensaje de error, así que déjelo aquí para el registro.
Supongo que está ejecutando esto desde un entorno virtual.
Al iniciar un nuevo proyecto Django, si ejecuta django-admin startproject <myproject>
, está invocando la instalación global de Django. Si, como en mi caso, proviene de un repositorio obsoleto, puede ser una versión anterior, en mi caso:
>> django-admin --version
>> 1.3.1
Si desea ejecutar Django desde un entorno virtual, debe invocarlo con django-admin.py startproject <myproject>
. De esta forma, obtienes un proyecto de Django con la versión correspondiente a tu instalación local :
>> django-admin.py --version
>> 1.6.6
Te pondré al corriente. Estoy tratando de configurar un entorno de desarrollo de Windows. He instalado con éxito Python, django y virtualenv + virtualenwrapper ( instalador de 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()
Pero cuando ejecuto: python manage.py runserver
desde mi repositorio clonado obtengo este error:
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
Tanto python como django se agregan a mi variable de sistema PATH:
...C:/Python27/;C:/Python27/Scripts/;C:/PYTHON27/DLLs/;C:/PYTHON27/LIB/;C:/Python27/Lib/site-packages/;
También he intentado esto con bash y powershell y sigo teniendo el mismo error.
¿Es este un problema relacionado virtualenv? ¿Django problema de dependencia? Yikes. ¿Cómo soluciono este problema? Ayúdame Stackoverflow-Kenobi tu única esperanza.
Recibí este error porque tenía una versión anterior de django-admin.py
en mi carpeta /usr/local/bin
y olvidé crear un nuevo virtualenv para mi nuevo proyecto.
Recuerda que los pasos para un nuevo proyecto deben ser:
- Primero crea un nuevo virtualenv para tu nuevo proyecto:
mkvirtualenv <mynewproj>
- Actualice la versión de Python para su virtualenv si es necesario:
virtualenv --python $(which python3.6) ~/.virtualenvs/<mynewproj>
- Luego crea tu estructura de carpeta de proyecto Django:
django-admin startproject <django project name>
También eliminé mi obsoleto /usr/local/bin/django-admin.py
porque fue creado antes de descubrir las alegrías de virtualenv
.
execute_manager
desaprobado en Django 1.4 como parte del refactor de diseño del proyecto y eliminado en 1.6 por el cronograma de degradación: https://docs.djangoproject.com/en/1.4/internals/deprecation/#id3
Para solucionar este error, debe instalar una versión compatible de Django para el proyecto o actualizar manage.py
a un nuevo estilo que no utilice execute_manager
: https://docs.djangoproject.com/en/stable/releases/1.4/#updated-default-project-layout-and-manage-py Probablemente si manage.py
no es compatible con 1.6, tampoco lo es el resto del proyecto. Debes encontrar la versión de Django apropiada para el proyecto.