Django-Importfehler - Kein Modul mit dem Namen core.management


187

Ok, ich sehe viele dieser Fehler. Ich habe alles versucht, was ich weiß, und muss es noch herausfinden.

Ich arbeite an einem Entwicklungsserver mit Python 2.5 und Django 1.3. Django 1.3 wurde nach dem Entpacken des tar.gz-Downloads mit python setup.py installiert.

Alles funktioniert gut, ich muss selten laufen manage.py, versuche aber, die neue statische Datei-App zu verwenden, und stoße auf Probleme.

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, also ich habe ein PATHProblem.

Bei der Django-Installation überprüfe ich mein site-packagesVerzeichnis.

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

Ok, schauen wir uns an, was ich habe. Echo $ PYTHON_PATH war leer, also habe ich es eingestellt

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

Immer noch kein Glück. Überprüfen wir, was sys.path zu sagen hat

>>> 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']

Pfad ist da, ich habe sogar /usr/lib/python2.5/site-packages/django.pth mit Inhalten erstellt

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

Hat jemand eine Ahnung, was hier los ist?

Ich fand einen Symlink weiter oben auf dem Weg, der mir im Weg stand, aber keinen Hinweis auf einen neuen Fehler.

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

Ich habe auch versucht, ein neues Projekt zu erstellen, um festzustellen, ob dort Probleme aufgetreten sind, und den gleichen utils.version-Fehler zu erhalten.

Seitenknoten: Unode von #django hat mir ein bisschen geholfen, virtualenv auf demselben Computer eingerichtet und die Fehler überwunden. Ich bin mir also immer noch nicht sicher, was mit dieser tatsächlichen Installation hier los ist, aber es scheint nicht in den Django-Projekten, sondern im Django zu sein / Python installieren.


1
Was passiert, wenn Sie import djangoin die Python-Shell eingeben?
Silent1mezzo

@ Silent1mezzo - Ahh hat vergessen, das reinzuwerfen, keine Beschwerden von der Python-Shell beim Import von Django
Grantk

1
Bist du gerannt python manage.py syncdb?
Silent1mezzo

@silentmezzo - Nicht auf diesem Computer, sondern auf meinem persönlichen Computer, bevor das Projekt verschoben wurde.
Grantk

Versuchen Sie es zuerst. Dies kann manchmal den Fehler verursachen.
Silent1mezzo

Antworten:


169

Wenn Sie wie ich Ihren Django in einer virtuellen Umgebung ausführen und diesen Fehler erhalten, sehen Sie sich Ihren an manage.py. In der ersten Zeile sollte die ausführbare Python-Datei definiert werden, mit der das Skript ausgeführt wird. Dies sollte der Pfad zum Python Ihres virtualenv sein, aber es ist etwas falsch wie / usr / bin / python, der nicht derselbe Pfad ist und die globale Python-Umgebung verwendet (und Pakete fehlen). Ändern Sie einfach den Pfad in den Pfad zur ausführbaren Python-Datei in Ihrer virtuellen Umgebung.

Sie können Ihre Shebang-Linie auch durch ersetzen #!/usr/bin/env python. Dies sollte die richtige Python-Umgebung und den richtigen Interpreter verwenden, vorausgesetzt, Sie aktivieren zuerst Ihre virtuelle Umgebung (ich gehe davon aus, dass Sie wissen, wie das geht).


27
oder laufen wie<path-to-my-env>/bin/python manage.py runserver
geekQ

Gut erkannt! Genau das war das Problem!
Kstratis

7
Denken Sie auch daran, die virtuelle Umgebung zu aktivieren. D'oh!
Alex Mcp

Auf jeden Fall können Sie ein Beispiel für den Pfad zu Ihrer ausführbaren Python-Datei in Ihrer virtuellen Umgebung angeben. Zum Beispiel ist mein Pfad zu meiner virtuellen Umgebung / Users / Chris / virtualenv / my_first_venv und ich habe die erste Zeile #! / Users / Chris / virtualenv / my_first_venv / erstellt, aber ich erhalte immer noch den gleichen Fehler. Ich glaube, ich mache vielleicht etwas falsch mit dem Schebang ...
Chris

Möglicherweise haben Sie vergessen, die ausführbare Python-Datei am Ende des Pfads hinzuzufügen: #!/Users/Chris/virtualenv/my_first_venv/bin/pythonoder etwas in dieser Richtung?
Steve K

40

Wenn Sie sich in einer virtuellen Umgebung befinden, müssen Sie diese aktivieren, bevor Sie den Befehl ./manage.py ausführen können.

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

Wenn Sie Workon in .bash_profile oder .bashrc konfigurieren

workon yourvirtualenvname

* Bitte bearbeiten Sie Ihre Datei "manage.py" nicht. Möglicherweise funktioniert dies nicht richtig und kann zu zukünftigen Fehlern führen


Dies tat es auch für mich, nachdem ich die halbe Nacht verbrannt hatte, um es zum Laufen zu bringen. Vielen Dank @ elin3t.
Yax

30

Ich hatte das gleiche Problem, weil ich Django als Superuser installiert habe, also nicht in meiner virtuellen Umgebung. Das solltest du nicht tunsudo pip install Django

Installieren Sie es stattdessen folgendermaßen:

$ source ./bin/activate
$ pip install Django

Aber ohne sudo erhalten Sie: OSError: [Errno 13] Berechtigung verweigert: '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django'
malhal

15

Bitte installieren Sie django mit pip neu:

sudo pip install --upgrade django==1.3

(Ersetzen Sie 1.3 durch Ihre Django-Version)


25
Nicht empfohlen. Die Verwendung sudozur Installation in den Systemverzeichnissen stört native Pakete und bricht höchstwahrscheinlich zumindest einige Teile Ihrer Python-Installation. Ich würde virtualenv empfehlen.
Noufal Ibrahim

11

Wie bekannt war dies ein Pfadproblem.

Die Basis meiner benutzerdefinierten Pakete hat einen Namen mit einem Verzeichnis geteilt, das in einem / etc / profile festgelegt ist. Die Pakete befanden sich jedoch für den Webserver an einem anderen Ort. Also habe ich die beleidigenden Einträge von meinem $ PYTHONPATH entfernt und konnte loslegen!

Danke für die Hilfe.


10

Ein weiterer möglicher Grund für dieses Problem ist, dass auf Ihrem Betriebssystem standardmäßig python3 ausgeführt wird.

Entweder müssen Sie explizit Folgendes tun: python2 manage.py

oder Sie müssen den Shebang von manage.pywie folgt bearbeiten :

#!/usr/bin/env python2

oder wenn Sie python3 verwenden:

#!/usr/bin/env python3

für mich musste ich tun#!/usr/bin/env python2.7
Vic

8

Ich hatte diesen Fehler beim Versuch, ein eingebettetes System (natürlich mit Django) auf einem Raspberry Pi 2 (und nicht auf einer VM ) auszuführen.

Führen Sie dies aus:

 sudo pip install Django

Hat den Trick gemacht!

  • Nur für den Fall, dass ein Kerl, der Raspbian / Jessie benutzt, dies bekommt

6

Sie verwenden wahrscheinlich virtualenvwrapper . Vergessen Sie nicht, Ihre Umgebung durch Ausführen auszuwählen:

$ workon env_name

4

Für mich verwendete mein Server Python 2.4. Ich habe einfach Python 2.7 nachgeschlagen, das auf meinem Server installiert war, und einen Alias ​​erstellt.

alias python=python2.7

Wenn Sie mehr wissen müssen, habe ich hier die Lösung gefunden


4

Ich habe das gleiche Problem bekommen, als ich versucht habe, eine neue App zu erstellen. Wenn Sie schreiben python manage.py startapp myapp, sucht es nach usr / bin / python. Sie benötigen jedoch diese " Python ", die sich im Verzeichnis / bin Ihres virtuellen Umgebungspfads befindet . Ich habe dies gelöst, indem ich den Python-Pfad von virtualenv wie folgt erwähnt habe:

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

3

Versuchen Sie, Ihre erste Zeile von manage.py zu ändern.

Veränderung

#!/usr/bin/python

durch

#!/usr/bin/env python

3
Das Gegenteil hat mir geholfen. Ersetzt #!/usr/bin/env pythondurch#!/usr/bin/python
Curlyreggie

env ist ein gängiger Unix-Bin, um Links zu OS-Umgebungs-Bins zu erhalten. Abhängig von der Betriebssystemkonfiguration oder der Python-Installation befindet sich der Bin möglicherweise in einem anderen Pfad als / usr / bin / und Ihre Lösung funktioniert nicht, auch nicht, wenn 'env' bin wird an einem anderen Ort installiert.
Gabriel Cavalcante

3
python3 manage.py runserver

Überprüfen Sie die Version von Python


3

Ich habe es gelöst!!!

Nach Ewigkeiten suchen und all diese Vorschläge versuchen , die nicht funktioniert haben, fand ich endlich die Lösung für mein Setup.

Mein Setup / Szenario:

  • Windows, Python27
  • Mein Django-Projekt wird über SVN ausgecheckt
  • Beim Ausführen von python manage.py runserver im neuen Ordner wurde der Importfehler angezeigt
  • Der Runnerver python manage.py arbeitete im ursprünglichen Ordner (von dem ich Änderungen übernehmen würde), bis ich ihn löschte

Lösung

Entfernen Sie alle Ordner mit dem Namen django im selben Verzeichnis von manage.py

Das ist richtig ... sobald ich den Ordner "django" entfernt habe, der nur eine __init__.py enthielt Datei ... konnte ich den Server wieder ausführen!

Habe aber keine Ahnung warum


Weil ein Ordner mit einer __init__.py-Datei als Python- Modul behandelt wird. Sie sollten also nicht das implizite Modulverzeichnis django
kaushal agrawal


2

Speichern Sie den Python-Python-Pfad in einer Variablen und führen Sie ihn aus. Dies würde die ansonsten fehlenden Pakete einschließen.

python_path= `which python` 
$python_path manage.py runserver

1

Ich hatte ein ähnliches Problem. PyCharm konnte den Server nicht ausführen, aber ich konnte ihn über die Befehlszeile ausführen. Ich habe versucht, welche Python und dann sichergestellt, dass PyCharm der gleiche Interpreter war und dann funktionierte alles in Ordnung.


1

Dieser Fehler tritt normalerweise auf, wenn django nicht installiert ist. Wenn Sie django bereits installiert haben, aber immer noch den gleichen Fehler erhalten, müssen Sie in einer separaten virtuellen Umgebung arbeiten. Sie müssen django auch in Ihrer virtuellen Umgebung installieren. Wenn Sie sich in der Shell einer virtuellen Maschine befinden, gehen Sie einfach folgendermaßen vor:

pip install django

Da die virtuelle Maschine über ein separates Dateisystem verfügt, erkennt sie Django nicht, selbst wenn es auf Ihrem System installiert ist.


1

Ich habe dieses Problem behoben, indem ich #PATH = "$ VIRTUAL_ENV / bin: $ PATH" in PATH = "$ PATH: $ VIRTUAL_ENV / bin" geändert habe installierte Python tut.


1

================================= LÖSUNG =============== ==========================

Zuerst gehe zu: virtualenv

durch Ausführen des Befehls: source bin / enable

und installieren Sie django, da der Fehler im Zusammenhang mit 'import django' angezeigt wird:

pip install django

Dann renne:

python manage.py runserver

(Hinweis: Bitte ändern Sie 'runserver' in den Programmnamen, den Sie ausführen möchten.)

Für das gleiche Problem hat es in meinem Fall funktioniert. ================================= Synopsis =============== ==========================

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'

Während der Behandlung der obigen Ausnahme ist eine weitere Ausnahme aufgetreten:

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'

Während der Behandlung der obigen Ausnahme ist eine weitere Ausnahme aufgetreten:

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

Während der Behandlung der obigen Ausnahme ist eine weitere Ausnahme aufgetreten:

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?

Nach der Installation von 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

NACH DER ENTSCHLIESSUNG:

(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

Viel Glück!!


0

Ihr Projekt wird mit einer alten Version von django-admin.py erstellt, die älter als django1.3 ist

Um dies zu beheben, erstellen Sie ein weiteres Django-Projekt, kopieren Sie die Datei "manage.py" und fügen Sie sie in die alte ein


@dontario. Nicht dieses, ich habe dieses Projekt mit meinem PC erstellt, auf dem 1.3.0 final ausgeführt wird. Es gibt einige importierte Projekte, die mit einer älteren Version erstellt wurden.
Grantk

Ich habe versucht, meine neue mange.py von der neuen Anwendung in die alte Anwendung zu kopieren, die ebenfalls verwendet wird, und erhalte immer noch den gleichen Fehler.
Grantk

0

Ich stimmte vollkommen zu, dass dies ein Pfadproblem ist, aber fwiw, ich hatte den gleichen Fehler. Dies lag an dem Fehler, beim Einrichten meiner virtuellen Umgebung einen relativen Pfad für meine ausführbare Python-Datei zu verwenden. Ich hatte das getan:

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

Stattdessen musste ich den vollständigen Pfad zur ausführbaren Python-Datei angeben.

HTH, Harlin


0

Quelle ~ / blog-venv / bin / aktivieren

Wählen Sie hier Ihre virtuelle Umgebung aus, um "blog-venv" zu ersetzen.


Danke, das hat mein Problem in Bezug auf dieses gelöst:File "manage.py", line 8, in <module> from django.core.management import execute_from_ ImportError: No module named django.core.management
Shailen

0

Stellen Sie sicher, dass Sie die richtige Python-Instanz mit den richtigen Verzeichnissen auf dem Pfad ausführen. In meinem Fall war dieser Fehler darauf zurückzuführen, dass die pythonausführbare Datei versehentlich ausgeführt wurde. Ich hatte Django tatsächlich unter dem python2.7Framework und den Bibliotheken installiert . Das gleiche könnte auch durch virtualenv passieren.


0

Okay, so geht es:

Sie haben eine virtuelle Umgebung erstellt und das Django-Modul gehört nur zu dieser Umgebung. Da sich virtualenv von allem anderen isoliert, sehen Sie dies.

Gehen Sie dies durch, um weitere Unterstützung zu erhalten:

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

1.Sie können in das Verzeichnis wechseln, in dem Ihre virtuelle Umgebung gespeichert ist, und dann das Django-Modul ausführen.

2. Alternativ können Sie Django global auf Ihren Python-> Site-Paketen installieren, indem Sie entweder pip oder easy_install ausführen

Befehl mit pip: pip install django

dann mach das:

importiere django print (django.get_version ()) (abhängig davon, welche Version von Python du verwendest. Dies für Python 3+ Serien)

und dann können Sie Folgendes ausführen: python manage.py runserver und in Ihrem Webbrowser überprüfen, indem Sie Folgendes eingeben: localhost: 8000, und Sie sollten eine Seite mit Django-Unterstützung sehen.

Hoffe das hilft.


0

Ich habe den Namen der neuen App in die Liste INSTALLED_APPS in der Datei settings.py aufgenommen, "bevor" ich den Befehl startapp ausgegeben habe. Nachdem ich den Listeneintrag entfernt hatte, konnte ich die App erstellen.


0

Ich habe dieses Problem gelöst, indem ich stattdessen den Befehl 'django-admin' wie folgt verwendet habe:

django-admin startproject _project_name

entferne einfach das an "django-admin" angehängte ".py"



0

Ich habe dies erhalten, weil ich vergessen habe, dass ich Django mit installiert habe pip -U, sodass es nur dem Benutzer zur Verfügung stand, der meine Django-App ausführt. Um manage.py auszuführen, musste ich tun

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

-2

Ihr alle habt keinen Fall erwähnt, in dem jemand "wie ich" django vor der Installation von virtualenv installieren würde ... also für alle Leute meiner Art, wenn ihr das getan habt ... installiert django neu, nachdem ihr virtualenv..i aktiviert habt hoffe das hilft


Dies ist keine Lösung. Es ist ein Kommentar zu einer anderen Lösung von Steve k.
Shanemgrey

Das ist mir passiert und so habe ich es behoben ... es ist ein Fehler, in den jeder Anfänger geraten könnte
Dever
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.