Error de importación de django: ningún módulo denominado core.management

187

Ok, veo muchos de estos errores. He intentado todo lo que sé hacer y todavía tengo que resolver esto.

Estoy trabajando en un servidor de desarrollo que ejecuta python 2.5 y Django 1.3. Django 1.3 se instaló usando python setup.py install después de desempacar la descarga tar.gz.

Todo funciona bien, rara vez tengo la necesidad de ejecutarlo, manage.pypero estoy tratando de usar la nueva aplicación staticfiles y tengo problemas.

python manage.py collectstatic
Traceback (most recent call last):
  File "manage.py", line 2, in <module>
    from django.core.management import execute_manager
ImportError: No module named core.management

Ok, entonces tengo un PATHproblema.

Desde la instalación de Django, verifico dos veces mi site-packagesdirectorio.

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
/usr/lib/python2.5/site-packages

Ok, veamos lo que tengo, echo $ PYTHON_PATH estaba vacío, así que lo configuré

export PYTHON_PATH=/usr/lib/python2.5/site-packages/django

Aún sin suerte. Vamos a ver qué tiene que decir sys.path

>>> import sys
>>> print sys.path
['', '/usr/lib/python2.5', '/usr/lib/python2.5/plat-linux2', '/usr/lib/python2.5/lib-tk', '/usr/lib/python2.5/lib-dynload', '/usr/local/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages/PIL', '/usr/lib/python2.5/site-packages/django', '/var/lib/python-support/python2.5']

ruta está ahí, incluso creé /usr/lib/python2.5/site-packages/django.pth con contenido

cat /usr/lib/python2.5/site-packages/django.pth 
/usr/lib/python2.5/site-packages/django/

¿Alguien tiene pistas sobre lo que está pasando aquí?

Encontré un enlace simbólico más arriba en el camino que se estaba interponiendo, pero sin un nuevo error.

python manage.py collectstatic
Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    execute_manager(settings)
  File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 438, in execute_manager
    utility.execute()
  File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 349, in execute
    version=get_version(),
  File "/usr/lib/python2.5/site-packages/django/__init__.py", line 12, in get_version
    from django.utils.version import get_svn_revision
ImportError: No module named utils.version

También intenté crear un nuevo proyecto para ver si había algún problema allí y obtener el mismo error de utils.version.

Nodo lateral: Unode de #django me ayudó un poco, configuré virtualenv en la misma máquina y superé los errores, así que todavía no estoy seguro de qué sucede con esta instalación real aquí, pero parece que no está en los proyectos de django sino en el django / instalación de python.

Grantk
fuente
1
¿Qué sucede cuando escribes import djangoen el shell de Python?
silent1mezzo
@ silent1mezzo - Ahh se olvidó de tirar eso, no hay quejas de la cáscara de python sobre django de importación
grantk
1
¿Has corrido python manage.py syncdb?
silent1mezzo
@silentmezzo: no en esta máquina, lo hice en mi máquina personal antes de mover el proyecto.
Grantk
Intenta ejecutarlo primero. Esto a veces puede causar el error.
silent1mezzo

Respuestas:

169

Si, como yo, está ejecutando su django en un virtualenv, y obtiene este error, mire su manage.py. La primera línea debe definir el ejecutable de Python utilizado para ejecutar el script. Esta debería ser la ruta de acceso a su python de virtualenv, pero es algo incorrecto como / usr / bin / python, que no es la misma ruta y utilizará el entorno global de python (y faltarán paquetes). Simplemente cambie la ruta en la ruta al ejecutable de Python en su virtualenv.

También puede reemplazar su línea shebang con #!/usr/bin/env python. Esto debería usar el entorno y el intérprete de Python adecuados siempre que active su virtualenv primero (supongo que sabe cómo hacerlo).

Steve K
fuente
27
o correr como<path-to-my-env>/bin/python manage.py runserver
geekQ
¡Bien descrito! ¡Ese fue exactamente el problema!
kstratis
77
Además, er ... recuerda activar el virtualenv. D'oh!
Alex Mcp
De todos modos, podría proporcionar un ejemplo de la ruta a su ejecutable de Python en su virtualenv. Por ejemplo, mi ruta a mi entorno virtual es / Users / Chris / virtualenv / my_first_venv e hice la primera línea #! / Users / Chris / virtualenv / my_first_venv /, pero sigo teniendo el mismo error. Creo que podría estar haciendo algo mal con el shebang ...
Chris
Es posible que haya olvidado agregar el ejecutable de Python al final de la ruta: ¿ #!/Users/Chris/virtualenv/my_first_venv/bin/pythono algo por el estilo?
Steve K
40

Si está en un virtualenv, debe activarlo antes de poder ejecutar ./manage.py 'command'

source path/to/your/virtualenv/bin/activate

si configura el trabajo en .bash_profile o .bashrc

workon yourvirtualenvname

* por favor no edite su archivo manage.py, tal vez no funcione de la manera correcta y le pueda dar errores futuros

elin3t
fuente
Esto también lo hizo por mí después de quemar la mitad de la noche luchando para que funcione. Muchas gracias @ elin3t.
Yax
30

Tuve el mismo problema porque estaba instalando Django como un superusuario, por lo tanto no en mi virtualenv. No deberías hacersudo pip install Django

En su lugar, instálelo de esta manera:

$ source ./bin/activate
$ pip install Django
aviggiano
fuente
Pero sin sudo obtienes: OSError: [Errno 13] Permiso denegado: '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django'
malhal
15

Por favor, reinstale django con pip:

sudo pip install --upgrade django==1.3

(Reemplace 1.3 a su versión de django)

satels
fuente
25
No recomendado. El uso sudopara instalar en los directorios del sistema interferirá con los paquetes nativos y probablemente romperá al menos algunas partes de su instalación de Python. Recomiendo virtualenv.
Noufal Ibrahim
11

Como se sabe, este fue un problema de ruta.

la base de mis paquetes personalizados compartió un nombre con un directorio establecido en / etc / profile. Sin embargo, los paquetes estaban en una ubicación diferente para el servidor web. ¡Así que eliminé las entradas ofensivas de mi $ PYTHONPATH y estaba listo!

Gracias por la ayuda.

Grantk
fuente
10

Otra posible razón de este problema es que su sistema operativo ejecuta python3 de forma predeterminada.

O tienes que hacer explícitamente: python2 manage.py

o necesita editar el shebang de manage.py, así:

#!/usr/bin/env python2

o si estás usando python3:

#!/usr/bin/env python3
nueces
fuente
para mí, tenía que hacerlo#!/usr/bin/env python2.7
Vic
8

Tuve este error al intentar ejecutar un sistema incrustado (usando django, por supuesto) en una Raspberry Pi 2 (y no una VM )

Ejecutando esto:

 sudo pip install Django

Hecho el truco!

  • solo en caso de que un compañero que use Raspbian / Jessie obtenga esto
d1jhoni1b
fuente
6

Probablemente esté utilizando virtualenvwrapper . No olvide seleccionar su entorno ejecutando:

$ workon env_name
MK
fuente
4

Para mí, mi servidor estaba usando Python 2.4. Simplemente busqué Python 2.7, que estaba instalado en mi servidor, y creé un alias.

alias python=python2.7

Si necesita saber más, encontré la solución aquí

el_stack
fuente
4

Estaba teniendo el mismo problema mientras intentaba crear una nueva aplicación. Si escribe python manage.py startapp myapp, entonces busca usr / bin / python. Pero necesita este " python " que se encuentra en el directorio / bin de su ruta de env virtual . Resolví esto mencionando la ruta de python de virtualenv así:

<env path>/bin/python manage.py startapp myapp
Tarique
fuente
3

Intente cambiar su primera línea de manage.py.

Cambio

#!/usr/bin/python

por

#!/usr/bin/env python
Gabriel Cavalcante
fuente
3
Lo contrario me ayudó. Reemplazado #!/usr/bin/env pythonpor#!/usr/bin/python
curlyreggie
env es un bin común de Unix para obtener enlaces del bin del entorno del sistema operativo, dependiendo de la configuración del sistema operativo o la instalación de Python, el bin puede residir en una ruta diferente a / usr / bin / y su solución no funcionará, tampoco funcionará si bin 'env' está instalado en una ubicación diferente.
Gabriel Cavalcante
3
python3 manage.py runserver

Verifique la versión de Python

sim
fuente
3

¡¡¡Resuelto!!!

Después de buscar edades y probar todas estas otras sugerencias que no funcionaron, finalmente encontré la solución para mi configuración.

Mi configuración / escenario:

  • Windows, Python27
  • Mi proyecto django se desprotege a través de svn
  • al ejecutar python manage.py runserver en la nueva carpeta, recibí el error de importación
  • Python manage.py runserver solía funcionar en la carpeta original (de la cual confirmaría los cambios) hasta que lo elimine

Solución

Elimine cualquier carpeta llamada django en el mismo directorio de manage.py

Eso es correcto ... tan pronto como eliminé la carpeta "django" que solo contenía un archivo __init__.py ... ¡podría volver a ejecutar el servidor!

No tengo idea de por qué

Dan
fuente
Porque una carpeta con un archivo __init__.py se trata como un módulo de Python . Por lo tanto, no debe nombrar el directorio del módulo implícito django
kaushal agrawal
2

Almacene la ruta de Python Python en una variable y ejecútela. Esto incluiría los paquetes que de otro modo faltarían.

python_path= `which python` 
$python_path manage.py runserver
Nischay Gulati
fuente
1

Tuve un problema similar. PyCharm no pudo ejecutar el servidor pero pude ejecutarlo desde la línea de comandos. Probé qué python y luego me aseguré de que PyCharm fuera el mismo intérprete y luego todo funcionó bien.

Trip Denton
fuente
1

Este error generalmente ocurre cuando django no está instalado. Si ya instaló django pero sigue recibiendo el mismo error, debe estar trabajando en un entorno virtual separado. También necesita instalar django en su entorno virtual. Cuando esté en el shell de la máquina virtual, simplemente haga esto:

pip install django

Debido a que la máquina virtual tiene un sistema de archivos separado, no reconoce django incluso si está instalado en su sistema.

Rai Ammad Khan
fuente
1

Solucioné este problema cambiando #PATH = "$ VIRTUAL_ENV / bin: $ PATH" a PATH = "$ PATH: $ VIRTUAL_ENV / bin" Por razones no obvias para mí, el ejecutable de Python en el directorio virtualenv no ve django pero normalmente Python instalado lo hace.

Lowlysquib
fuente
1

================================== SOLUCIÓN =============== ==========================

Primer goto: virtualenv

ejecutando el comando: bin fuente / activar

e instale django porque está recibiendo el error relacionado con 'importar django':

pip install django

Entonces corre:

python manage.py runserver

(Nota: cambie 'runserver' por el nombre del programa que desea ejecutar)

Por el mismo problema, funcionó en mi caso. ================================== Sinopsis =============== ==========================

ERROR:
(Development) Rakeshs-MacBook-Pro:src rakesh$ python manage.py runserver
Traceback (most recent call last):
  File "manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    import django
ModuleNotFoundError: No module named 'django'

Durante el manejo de la excepción anterior, se produjo otra excepción:

Traceback (most recent call last):
  File "manage.py", line 17, in <module>
    "Couldn't import Django. Are you sure it's installed and "
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
(Development) Rakeshs-MacBook-Pro:src rakesh$ 
(Development) Rakeshs-MacBook-Pro:src rakesh$ 
(Development) Rakeshs-MacBook-Pro:src rakesh$ python -Wall manage.py test
Traceback (most recent call last):
  File "manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'

Durante el manejo de la excepción anterior, se produjo otra excepción:

Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    import django
ModuleNotFoundError: No module named 'django'

Durante el manejo de la excepción anterior, se produjo otra excepción:

Traceback (most recent call last):
  File "manage.py", line 17, in <module>
    "Couldn't import Django. Are you sure it's installed and "
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

DESPUÉS DE LA INSTALACIÓN de django:

(Development) MacBook-Pro:src rakesh$ pip install django
Collecting django
  Downloading https://files.pythonhosted.org/packages/51/1a/e0ac7886c7123a03814178d7517dc822af0fe51a72e1a6bff26153103322/Django-2.1-py3-none-any.whl (7.3MB)
    100% |████████████████████████████████| 7.3MB 1.1MB/s 
Collecting pytz (from django)
  Downloading https://files.pythonhosted.org/packages/30/4e/27c34b62430286c6d59177a0842ed90dc789ce5d1ed740887653b898779a/pytz-2018.5-py2.py3-none-any.whl (510kB)
    100% |████████████████████████████████| 512kB 4.7MB/s 
Installing collected packages: pytz, django

DESPUÉS DE RESOLVER:

(Development) MacBook-Pro:src rakesh$ python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).

You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

August 05, 2018 - 04:39:02
Django version 2.1, using settings 'trydjango.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[05/Aug/2018 04:39:15] "GET / HTTP/1.1" 200 16348
[05/Aug/2018 04:39:15] "GET /static/admin/css/fonts.css HTTP/1.1" 200 423
[05/Aug/2018 04:39:15] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 82564
[05/Aug/2018 04:39:15] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 81348
[05/Aug/2018 04:39:15] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 80304
Not Found: /favicon.ico
[05/Aug/2018 04:39:16] "GET /favicon.ico HTTP/1.1" 404 1976

¡¡Buena suerte!!

Rakesh Kumar
fuente
0

su proyecto se crea utilizando una versión anterior de django-admin.py, anterior a django1.3

para solucionar esto, cree otro proyecto de django y copie su manage.py y péguelo en el anterior

MBarsi
fuente
@dontario. No este, creé este proyecto usando mi computadora personal con 1.3.0 final. Hay algunos proyectos importados que se crearon con una versión anterior, ¿podría ser eso?
Grantk
Intenté copiar mi nuevo mange.py de la nueva aplicación a la aplicación anterior que también se usa y todavía recibo el mismo error.
Grantk
0

Estuve completamente de acuerdo en que este es un problema de ruta, pero ahora, tuve este mismo error. Se debió al error de usar una ruta relativa para mi ejecutable de Python al configurar mi entorno virtual. Había hecho esto:

virtualenv -p ~/python_runtimes/2.7.3/bin/python venv2.7.3 --distribute

En cambio, tuve que dar la ruta completa al ejecutable de Python.

HTH, Harlin

Harlin
fuente
0

fuente ~ / blog-venv / bin / activar

elija su virtualenv para reemplazar "blog-venv" aquí.

windmaomao
fuente
Gracias, eso resolvió mi problema con respecto a esto:File "manage.py", line 8, in <module> from django.core.management import execute_from_ ImportError: No module named django.core.management
Shailen
0

Asegúrese de ejecutar la instancia correcta de Python con los directorios correctos en la ruta. En mi caso, este error resultó de ejecutar el pythonejecutable por accidente: en realidad instalé Django en el python2.7marco y las bibliotecas. Lo mismo podría suceder como resultado de virtualenv también.

Chris Johnson
fuente
0

De acuerdo, entonces va así:

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

ve a través de 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/

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

2. Alternativamente, puede instalar django globalmente en sus paquetes python-> site 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 activada por django.

Espero que esto ayude.

Ashish
fuente
0

Incluí el nombre de la nueva aplicación en la lista INSTALLED_APPS en settings.py "before" emití el comando startapp. Una vez que eliminé la entrada de la lista, pude crear la aplicación.

Milad M
fuente
0

Resolví este problema usando el comando 'django-admin' de la siguiente manera:

django-admin startproject _project_name

simplemente elimine el ".py" adjunto a "django-admin"

M Haziq
fuente
0

Tener una aplicación llamada sitepuede reproducir este problema tampoco.

Christian Gutierrez Sierra
fuente
0

Obtuve esto debido a olvidar que instalé Django usando pip -U, por lo que solo estaba disponible para el usuario que ejecuta mi aplicación Django. Para ejecutar manage.py tuve que hacer

sudo su -s /bin/bash MY_DJANGO_USER
/PATH/TO/MY/APP/manage.py
EM0
fuente
-2

todos ustedes no mencionaron un caso en el que alguien "como yo" instalaría django antes de instalar virtualenv ... así que para todas las personas de mi clase si lo hicieran ... reinstalen django después de activar virtualenv..i espero que esto ayude

Dever
fuente
Esta no es una solución. Es un comentario sobre otra solución de Steve k.
shanemgrey
eso es lo que me pasó y así es como lo arreglé ... es un error en el que cualquier principiante podría caer
Dever