Django - "sin módulo llamado django.core.management"

104

Recibo el siguiente error al intentar ejecutar Django desde la línea de comandos.

File manage.py, line 8, in <module>
     from django.core.management import execute_from_command_line
ImportError: No module named django.core.management

¿Alguna idea sobre cómo solucionar esto?

Krasimir
fuente
¿Qué está intentando ejecutar exactamente, qué versión de Python, versión de Django, etc.?
Jon Clements
La versión de mi host local es Python 2.6.6 y 1.4.3 Dyango. El servidor Python es 2.6.6 y para Dyango no se puede verificar si sabe cómo verificarlo.
Krasimir
Recibí este error al azar mientras intentaba realizar migraciones y estaba en mi entorno virtual con Django instalado. Simplemente ejecuté el comando nuevamente y funcionó.
aalaap
Tengo este mismo error. Tengo django instalado pero está instalado en el directorio dist-packages. El Dockerfile usa la imagen base de ubuntu. Así que actualicé el Dockerfile para agregar esto, ENV PYTHONPATH="$PYTHONPATH:/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages"pero aún no carga la aplicación django.
alltej

Respuestas:

55

Parece que no tienes django instalado. Debe verificar el directorio producido por este comando:

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

Para ver si tiene los paquetes de django allí.

Si no hay una carpeta de django dentro de los paquetes del sitio, entonces no tienes django instalado (al menos para esa versión de python).

Es posible que tenga más de una versión de Python instalada y django esté dentro de otra versión. Puede averiguar todas las versiones de Python si escribe pythony luego presiona TAB. Aquí están todas las diferentes pitones que tengo.

$python
python            python2-config    python2.6         python2.7-config  pythonw2.5
python-config     python2.5         python2.6-config  pythonw           pythonw2.6
python2           python2.5-config  python2.7         pythonw2          pythonw2.7

Puede hacer el comando anterior para cada versión de python y mirar dentro del directorio site-packages de cada uno para ver si alguno de ellos tiene instalado django. Por ejemplo:

python2.5 -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
python2.6 -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

Si encuentra django dentro de, por ejemplo, python2.6, pruebe su comando original con

python2.6 manage.py ...
RaviU
fuente
Esto es lo que viene justo después del comando "/usr/lib/python2.6/site-packages"
Krasimir
Vaya a la carpeta "/usr/lib/python2.6/site-packages" y vea si hay una carpeta llamada django dentro.
RaviU
Todo lo demás no es Django: D
Krasimir
Hola, por favor revisa mi respuesta editada. Quizás su django esté en otra versión de python.
RaviU
1
Si instaló django usando virtualenv o mientras estaba en un entorno virtual, debe estar en el entorno virtual para que se ejecute, a menos que lo haya instalado en el sistema globalmente.
Ramon Suarez
41
sudo pip install django --upgrade 

hizo el truco para mí.

Árbol de código
fuente
4
Su respuesta funcionó para mí, así que le di un voto a favor. Sin embargo, sólo la respuesta por sí sola no era suficiente, porque cuando me encontré con sudo pip install django --upgradeque me dio un nuevo error: No module named psycopg2. Entonces, corrí sudo pip install psycopg2 --upgradey funcionó.
Dorian Dore
2
Resultó que no tenía instalado django ... A pesar de que lo había usado antes en la máquina. Extraño.
James111
Tuve un problema de tiempo de espera, así que lo hice sudo pip install --default-timeout=100 django --upgradey todo salió bien.
Zap
Si está utilizando "pyenv", necesitará lo siguiente:pip install django --upgrade --user
Inyoka
30

Recibí el mismo error y lo solucioné de esta manera:

Tuve que activar mi entorno virtual usando el siguiente comando

source python2.7/bin/activate
Anagha
fuente
22

Lo más probable es que manage.pyla primera línea comience con lo !/usr/bin/pythonque significa que está utilizando Python global del sistema en lugar del de su entorno virtual.

así que reemplaza

/usr/bin/python

con

~/projectpath/venv/bin/python

y deberías estar bien.

mgPePe
fuente
Gracias. Eso ayudo.
Serg Smyk
Mi proyecto tenía un script bash que llamaba a una parte de la aplicación, y en ese script bash estaba python startappasí que tuve que cambiarlo /path/to/venv/bin/python startappy funcionó. ¡¡Gracias por señalar esto !!
Gordster
13

bueno, me enfrenté al mismo error hoy después de instalar virtualenv y django. Para mí fue que había usado sudo ( sudo pip install django ) para instalar django, y estaba tratando de ejecutar manage.py runserver sin sudo . Acabo de agregar sudo y funcionó. :)

usuario1578297
fuente
10

¿Está utilizando un entorno virtual con Virtual Wrapper? ¿Estás en una Mac?

Si es así, intente esto:

Ingrese lo siguiente en su línea de comando para iniciar el entorno virtual y luego trabajar en él

1.)

source virtualenvwrapper.sh

o

source /usr/local/bin/virtualenvwrapper.sh

2.)

workon [environment name]

Nota (de un novato): no ponga corchetes alrededor del nombre de su entorno

Pete Varley
fuente
Me tomó como dos segundos darme cuenta de que virtualenv no estaba habilitado, pero este era mi problema ... así que vota ya que presioné Google el botón de Google una vez y no leí nada de lo que surgió.
RobotHumans
7

Tengo el mismo problema al ejecutar el comando-

python manage.py startapp <nombre_aplicación>

pero el problema conmigo es que estaba ejecutando ese comando fuera del entorno virtual, así que primero active su entorno virtual y vuelva a ejecutar el comando -

Rahul Satal
fuente
1
Mi proyecto tenía un script bash que llamaba a una parte de la aplicación, y en ese script bash estaba python startappasí que tuve que cambiarlo /path/to/venv/bin/python startappy funcionó.
Gordster
5

Este problema ocurre cuando django no está instalado en su computadora. Cuando django no está instalado, lo que significa que el módulo django.core.management tampoco está instalado. Entonces no encontró este módulo y da error.
Para solucionar este problema deberíamos instalar django usando pip. Abra la línea de comando cmd (en Windows) y escriba como

pip install django

Este comando instalará django en su computadora. Si no tiene instalar pip. deberías instalar pip. Aquí cómo instalar pip en Windows

Harun ERGUL
fuente
5

Experimento lo mismo y esto es lo que hago.

Primero mi instalación de

pip install -r requirements.txt

no está en mi entorno activo. Lo que hice fue activar mi entorno y luego ejecutar de nuevo el

pip install -r requirements.txt

Jek Hatulan
fuente
4

Bien, es así:

Ha creado un entorno virtual y el módulo django pertenece solo a ese entorno, ya que virtualenv se aísla de todo lo demás, por lo tanto, está viendo esto.

revise esto para obtener más ayuda:

http://www.swegler.com/becky/blog/2011/08/27/python-django-mysql-on-windows-7-part-i-getting-started/

Puede cambiar al directorio donde está almacenado su entorno virtual y luego ejecutar el módulo django.

2.Alternativamente, puede instalar django globalmente en su python-> site-packages ejecutando pip o easy_install

Comando usando pip: pip install django

entonces haz esto:

importar django print (django.get_version ()) (dependiendo de la versión de Python que use, esto para la serie Python 3+)

y luego puede ejecutar esto: python manage.py runserver y verificar en su navegador web escribiendo: localhost: 8000 y debería ver la página impulsada por django.

Espero que esto ayude.

Ashish
fuente
3

En caso de que esto sea útil para otros ... Tuve este problema porque mi virtualenv estaba predeterminado en python2.7 y estaba llamando a Django usando Python3 mientras usaba Ubuntu.

para verificar qué python estaba usando mi virtualenv:

$ which python3
>> /usr/bin/python3

creó un nuevo virtualenv con python3 especificado (usando el envoltorio virtualenv https://virtualenvwrapper.readthedocs.org/en/latest/ ):

$ mkvirtualenv --python=/usr/bin/python3 ENV_NAME

la ruta de python ahora debería apuntar a virtualenv python:

$ which python3
>> /home/user/.virtualenvs/ENV_NAME/bin/python3
sk8asd123
fuente
2

Esto también sucede si cambia la estructura de directorios de su proyecto de Python (hice esto y luego me desconcerté por el cambio en el comportamiento). Si lo hace, deberá cambiar una línea en su archivo / bin / active. Entonces, digamos que su proyecto estaba en

/User/me/CodeProjects/coolApp/

y su archivo de activación está en

/User/me/CodeProjects/coolApp/venv/bin/activate

cuando configuró su proyecto, luego cambió su proyecto a

/User/me/CodeProjects/v1-coolApp/

o algo. Entonces necesitarías abrir

/User/me/CodeProjects/v1-coolApp/venv/bin/activate

encuentra la línea donde dice

VIRTUAL_ENV="/User/me/CodeProjects/coolApp"
export VIRTUAL_ENV

y cámbielo a

VIRTUAL_ENV="/User/me/CodeProjects/v1-coolApp"

antes de reactivar

adamadam
fuente
2

En mi caso, estoy usando Ubuntu. El problema puede ser que no tengo permiso para escribir en esa carpeta como usuario normal. Simplemente puede agregar el sudoantes de su comando y debería funcionar perfectamente. En mi caso sudo python manage.py syncdb.

Agotado
fuente
2

Tuve el mismo problema y la razón por la que recibí este mensaje fue porque estaba haciendo "manage.py runserver" mientras que haciendo "python manage.py runserver" lo solucionó.

MAhsan
fuente
2
Tenga en cuenta que si se usa Python 3, es necesario python3 manage.py runserver. De lo contrario, el error de importación seguirá ahí.
rbaleksandar
2

Tuve el mismo problema y lo siguiente funcionó bien, debe navegar por la carpeta principal en su proyecto que escribir:

source bin/activate 
Pez de colores
fuente
1

tenía el mismo comando problem.run 'python manage.py migrate' como root. funciona bien con acceso root (sudo python manage.py migrate)

Hemanth Gowda
fuente
1
Eso es tratar el síntoma, no la causa. Si sudo funciona, probablemente sea un problema de permisos.
evandentremont
Seguramente, solo una forma de diagnosticar el problema.
Hemanth Gowda
1

En mi caso, usé pyCharm 5 en mac. También tuve este problema y después de ejecutar este comando se resolvió mi problema

sudo pip install django --upgrade 
Amir
fuente
1

Puedes probarlo así: python3 manage.py migrate(hacer que sur esté en el src/directorio)

También puede probar con pip install -r requirements.txt(asegúrese de que vea el requirements.txtarchivo cuando escriba lsdespués de migrar

Si después de todo todavía no funciona, intenta pip install django

Espero eso ayude

7herrumbre
fuente
0

Primero debe elegir su proyecto antes de ejecutar el servidor, escriba esto y workon your_project_name luego python manage.py runserver

Syiwa Wahyu Saputra
fuente
-1

El conflicto de propiedad de archivos y directorios provocará problemas aquí. Asegúrese de que la propiedad de los directorios y archivos del proyecto sea del usuario actual. (Puede cambiarlos usando el comando chown con la opción -R.) Intente volver a ejecutar el comando: esto me resolvió el problema al ejecutar la muestra "Primera aplicación Django":

python manage.py startapp polls
keesar
fuente
-1

Tengo el mismo problema al intentar usar python manage.py runserver . En mi caso, solo uso sudo su . Usa el terminal como root e inténtalo de nuevo y funciona parcialmente. Entonces uso python manage.py migrate comand y lo soluciono.

usuario314165
fuente