Django: ImportError: no se puede importar el nombre _compare_digest

He instalado Django 1.6.5 con PIP y Python 2.7.8 desde el sitio web.

django-admin.py startproject test123 , test123 directorio test123 y ejecuté el comando python manage.py runserver , luego obtengo esto:

 Traceback (most recent call last): File "manage.py", line 10, in  execute_from_command_line(sys.argv) File "/Library/Python/2.7/site-packages/Django-1.6.5-py2.7.egg/django/core/management/__init__.py", line 399, in execute_from_command_line utility.execute() File "/Library/Python/2.7/site-packages/Django-1.6.5-py2.7.egg/django/core/management/__init__.py", line 392, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/Library/Python/2.7/site-packages/Django-1.6.5-py2.7.egg/django/core/management/__init__.py", line 261, in fetch_command commands = get_commands() File "/Library/Python/2.7/site-packages/Django-1.6.5-py2.7.egg/django/core/management/__init__.py", line 107, in get_commands apps = settings.INSTALLED_APPS File "/Library/Python/2.7/site-packages/Django-1.6.5-py2.7.egg/django/conf/__init__.py", line 54, in __getattr__ self._setup(name) File "/Library/Python/2.7/site-packages/Django-1.6.5-py2.7.egg/django/conf/__init__.py", line 50, in _setup self._configure_logging() File "/Library/Python/2.7/site-packages/Django-1.6.5-py2.7.egg/django/conf/__init__.py", line 72, in _configure_logging from django.utils.log import DEFAULT_LOGGING File "/Library/Python/2.7/site-packages/Django-1.6.5-py2.7.egg/django/utils/log.py", line 7, in  from django.views.debug import ExceptionReporter, get_exception_reporter_filter File "/Library/Python/2.7/site-packages/Django-1.6.5-py2.7.egg/django/views/debug.py", line 10, in  from django.http import (HttpResponse, HttpResponseServerError, File "/Library/Python/2.7/site-packages/Django-1.6.5-py2.7.egg/django/http/__init__.py", line 2, in  from django.http.request import (HttpRequest, QueryDict, UnreadablePostError, File "/Library/Python/2.7/site-packages/Django-1.6.5-py2.7.egg/django/http/request.py", line 11, in  from django.core import signing File "/Library/Python/2.7/site-packages/Django-1.6.5-py2.7.egg/django/core/signing.py", line 45, in  from django.utils.crypto import constant_time_compare, salted_hmac File "/Library/Python/2.7/site-packages/Django-1.6.5-py2.7.egg/django/utils/crypto.py", line 6, in  import hmac File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hmac.py", line 8, in  from operator import _compare_digest as compare_digest ImportError: cannot import name _compare_digest 

Descubrí que el operador es una biblioteca estándar de Python. ¿Por qué no puede no importarlo?

PS Lo intenté en la línea de comandos, puedo importar el módulo del operador, pero me sale un error en esta statement: from operator import _compare_digest as compare_digest

Siguió a esta respuesta SO: Desinstale la versión python.org de python2.7 en favor del OS X predeterminado python2.7

Luego, cambié mi ruta de Python de .bash_profile a /usr/lib/python para la ruta de Python de OSX predeterminada.

Desinstalado Django y MySQL-Python:

 sudo pip uninstall django sudo pip uninstall MySQL-Python 

Y luego reinstalé todo de nuevo, pero con MySQL-Python siendo el primer y segundo Django.

Después de estos pasos, todo está funcionando.

Obtengo este error con anaconda como mi python y django1.7 predeterminados al intentar usar startproject. He eliminado el venv y lo he recreado con

 virtualenv -p /usr/bin/python2.7 venv 

startproject estaba funcionando de nuevo.

Lo más probable es que tenga otro archivo llamado operator.py en su PYTHONPATH (probablemente en el directorio de trabajo actual), que oculta el módulo del operator biblioteca estándar.

Eliminar o renombrar el archivo.

Para aquellos que no desean cambiar a la python de Apple, simplemente eliminando el virtualenv y reconstruyéndolo funcionó bien para mí.

Consejo: No se olvide de pip freeze > requirements.txt primero pip freeze > requirements.txt si aún no está siguiendo los requisitos de su paquete. De esa manera, puede pip install -r requirements.txt para volver a empezar a trabajar rápidamente.