python - ImportError: No hay un módulo llamado django.core.management cuando se usa manage.py
python-2.7 django-manage.py (11)
Estoy intentando ejecutar python manage.py runserver
en una aplicación de Django que tengo y recibo este error:
Traceback (most recent call last):
File "manage.py", line 8, in <module>
from django.core.management import execute_from_command_line
ImportError: No module named django.core.management
Aquí está la salida de pip freeze | grep -i django
de pip freeze | grep -i django
pip freeze | grep -i django
para mostrar que sí tengo instalado Django:
Django==1.6.5
django-cached-authentication-middleware==0.2.0
django-cors-headers==1.1.0
django-htmlmin==0.7.0
django-static-precompiler==0.9
djangorestframework==2.3.14
Además, al intentar ejecutar /usr/local/bin/python2.7 manage.py runserver
produce el mismo error.
Además, asegúrese de no haber .bashrc
su .bashrc
con alias
es. alias python="/usr/bin/python3"
este tipo de errores si .bashrc
contiene algo como alias python="/usr/bin/python3"
.
Descubrí que podía importar el módulo django desde el intérprete de python, pero django-admin.py no podía importarlo cuando se ejecutaba desde la línea de comandos.
Confirmé que estaba usando el intérprete de python en mi entorno virtual.
Estaba usando una versión de 64 bits de python. Desinstalar e instalar la versión de 32 bits, luego volver a crear mi venv solucionó esto por mí.
El problema directo es que falta el paquete django. Para mí, como estaba ejecutando django en virtualenv, este problema ocurre después de cambiar el nombre de mi directorio de trabajo.
Reinstalar el env funcionó para mí.
Encontré el mismo problema cuando hice toda la configuración y corrí para django con Python3 pero ejecuté el siguiente comando:
$ python manage.py migrate
solucionó el problema utilizando una versión coherente de Python:
$ python3 manage.py migrate
Operations to perform:
Apply all migrations: sessions, auth, admin, contenttypes
Running migrations:
Rendering model states... DONE
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying sessions.0001_initial... OK
Otros comandos que ejecuté antes de esto fueron:
python3 -m pip install django
django-admin startproject learning_site
python3 manage.py runserver 0.0.0.0:8000
Ese error se debe al entorno del usuario. De hecho, acabo de agregar la ruta bin del entorno virtuel a PATH y el problema se ha resuelto.
PATH=/bin/of_virtualenvironment/:$PATH
Para solucionar mi problema utilicé la siguiente línea en mi .zprofile:
export PYTHONPATH=/usr/local/lib/python2.7/site-packages
Estaba intentando importar Django y no se pudo encontrar, y hacer lo anterior resolvió el problema.
Posibles problemas que pueden causar su problema:
PYTHONPATH no está bien configurado, para configurarlo debes hacer:
export PYTHONPATH=/usr/local/lib/python2.7/site-packages
Olvidaste la línea
#!/usr/bin/env python
al comienzo de manage.pySi está trabajando en virtualenv, olvidó activar el entorno virtual para ejecutar los comandos de manage.py (es posible que haya instalado Django en su sistema pero no en su virtualenv)
source path/to/your/virtualenv/bin/activate
o
workon env_name
Tienes Python 2.7 y Python 3.4 jugando con el paquete
Estás usando un Python 2.4 muy antiguo y deberías decirle al sistema que use tu Python 2.7 con:
alias python=python2.7
Algunas veces, reinstalar / actualizar Django soluciona algunos de esos problemas.
Es posible que desee ejecutar
python -c "import django; print(django.get_version())"
para verificar si Django está instalado en su PC o en su virtualenv si está usando uno
Puedes encontrar otras soluciones en otras preguntas similares:
Resolví este mismo error ejecutando el siguiente comando:
python3.4 manage.py runserver
Y el comando anterior ejecutado con éxito para mí. Entonces, lo que puedes intentar es, si estás usando Python 2.7, entonces reemplaza 3.4 por 2.7. Espero que esto ayude.
Resolví este problema instalando django dentro del entorno virtual en el que estaba trabajando.
Si usa virtualenv
y ejecuta manage.py runserver
en el sistema de Windows, cmd usará python del sistema, no python en virtualenv. Porque si instala python
en el sistema, cmd usará automáticamente python
que instaló en el sistema, no python en virtualenv
. Así que si usas virtualenv
en Windows. necesitas correr
>python ./manage.py runserver
en donde reside su archivo django, verifique la primera línea de django-admin.py:
#!/usr/bin/env python
Si usa python 3+, python
aquí puede referirse a python2 aquí. Así que comprueba con qué python instales django.
ls -l $(which -a python3)
Si tienes python3 instalado y no vinculado como python
, cambia la primera línea de shebang por
#!/usr/bin/env python3