Error de importación no se puede importar el administrador de ejecución de nombre en el entorno windows


Te pondré al día. Estoy tratando de configurar un entorno de desarrollo de Windows. He instalado con éxito python, django y virtualenv + virtualenwrapper (windows-cmd installer)

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 corro: 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 la ruta de la variable de mi sistema:

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

También he probado esto con bash y powershell y todavía recibo el mismo error.

¿Es este un problema relacionado con virtualenv? Django dependencia problema? Uy. ¿Cómo puedo solucionar este problema? Ayúdame a Stackoverflow-kenobi tu mi única esperanza.

Author: Modelesq, 2014-01-03

3 answers

execute_manager obsoleto en Django 1.4 como parte del refactor de diseño del proyecto y fue eliminado en 1.6 por la línea de tiempo de obsolescencia: https://docs.djangoproject.com/en/1.4/internals/deprecation/#id3

Para corregir este error, debe instalar una versión compatible de Django para el proyecto o actualizar el manage.py a un nuevo estilo que no usa execute_manager: https://docs.djangoproject.com/en/stable/releases/1.4/#updated-default-project-layout-and-manage-py Lo más probable si su manage.py no es compatible con 1.6, entonces tampoco lo es el resto del proyecto. Debe encontrar la versión de Django apropiada para el proyecto.

 54
Author: Mark Lavin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-10 12:27:21

@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 obtener este mensaje de error para dejarlo aquí para el registro.

Asumo que estás ejecutando esto desde un entorno virtual.

Al iniciar un nuevo proyecto de 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 antigua - en mi caso:

>> django-admin --version
>> 1.3.1

Si quieres para ejecutar Django desde un entorno virtual, debe invocarlo con django-admin.py startproject <myproject>. De esta manera, se obtiene un proyecto de Django con la versión correspondiente a su instalación local:

>> django-admin.py --version
>> 1.6.6
 3
Author: Gabriel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-02 05:50:40

Estaba recibiendo este error porque tenía una versión antigua de django-admin.py en mi carpeta /usr/local/bin y me había olvidado de crear un nuevo virtualenv para mi nuevo proyecto.

Recuerde que los pasos para un nuevo proyecto deben ser:

  1. Primero crea un nuevo virtualenv para tu nuevo proyecto:
    mkvirtualenv <mynewproj>
  2. Actualice la versión de Python para su virtualenv si es necesario:
    virtualenv --python $(which python3.6) ~/.virtualenvs/<mynewproj>
  3. Luego crea tu estructura de carpetas del proyecto Django:
    django-admin startproject <django project name>

También borré mi viejo obsoleto /usr/local/bin/django-admin.py porque fue creado antes de descubrir las alegrías de virtualenv.

 0
Author: Brendan Quinn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-22 15:29:04