it-swarm.com.de

Importfehler kann den Namen execute_manager in der Windows-Umgebung nicht importieren

Ich werde dich auf den neuesten Stand bringen. Ich versuche, eine Windows-Entwicklerumgebung einzurichten. Ich habe erfolgreich Python, Django und Virtualenv + Virtualenwrapper installiert ( windows-cmd installer )

workon env
Python 2.7.6 (default, Nov 10 2013, 19:24:24) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import Django
>>> Django.VERSION
(1,6,1, 'final',0)
>>> quit()

Wenn ich jedoch: python manage.py runserver von meinem geklonten Repository aus laufe, erhalte ich diesen Fehler:

Traceback (most recent call last)"
File "manage.py", line 2, in (module)
from Django.core.management import execute_manager
ImportError: cannot import name execute_manager

Sowohl Python als auch Django werden zu meiner Systemvariablen PATH hinzugefügt:

...C:\Python27\;C:\Python27\Scripts\;C:\PYTHON27\DLLs\;C:\PYTHON27\LIB\;C:\Python27\Lib\site-packages\; 

Ich habe das auch mit bash und powershell ausprobiert und bekomme immer noch den gleichen Fehler.

Ist das ein Problem mit Virtualenv? Frage der Django-Abhängigkeit? Yikes Wie kann ich dieses Problem beheben? Helfen Sie mir, Stackoverflow-Kenobi meine einzige Hoffnung. 

30
Modelesq

execute_manager wurde in Django 1.4 als Teil des Projekt-Layout-Refactors aufgehoben und in 1.6 nach der Zeitspanne der Ablehnung entfernt: https://docs.djangoproject.com/en/1.4/internals/deprecation/#id3

Um diesen Fehler zu beheben, sollten Sie entweder eine kompatible Version von Django für das Projekt installieren oder den manage.py auf einen neuen Stil aktualisieren, der execute_manager: https://docs.djangoproject.com/de/stable/releases/1.4/# nicht verwendet. update-default-project-layout-and-manage-py Wenn Ihr manage.py nicht mit 1.6 kompatibel ist, ist dies wahrscheinlich auch der Rest des Projekts. Sie sollten die passende Django-Version für das Projekt finden.

54
Mark Lavin

Mark Lavin hat schön erklärt, was der Fehler bedeutet und wie er entsteht. Ich glaube, ich habe gerade erfahren, warum andere möglicherweise auch diese Fehlermeldung erhalten, und so für die Aufzeichnung hier lassen.

Ich gehe davon aus, dass Sie dies in einer virtuellen Umgebung ausführen.

Wenn Sie ein neues Django-Projekt starten und Django-admin startproject <myproject> ausführen, rufen Sie die globale Installation von Django auf. Wenn es wie in meinem Fall von einem veralteten Repo stammt, kann es sich um eine alte Version handeln - in meinem Fall:

>> Django-admin --version
>> 1.3.1

Wenn Sie Django in einer virtuellen Umgebung ausführen möchten, müssen Sie es mit Django-admin.py startproject <myproject> aufrufen. Auf diese Weise erhalten Sie ein Django-Projekt, dessen Version Ihrer local - Installation entspricht:

>> Django-admin.py --version
>> 1.6.6
3
Gabriel

Ich bekam diesen Fehler, weil ich eine alte Version von Django-admin.py In meinem /usr/local/bin Ordner hatte und ich vergessen hatte, eine neue virtuelle Datei für mein neues Projekt zu erstellen.

Denken Sie daran, dass die Schritte für ein neues Projekt sein sollten:

  1. Erstellen Sie zunächst eine neue virtuelle Umgebung für Ihr neues Projekt:
    mkvirtualenv <mynewproj>
  2. Aktualisieren Sie bei Bedarf die Python Version für Ihre virtuelle Umgebung:
    virtualenv --python $(which python3.6) ~/.virtualenvs/<mynewproj>
  3. Dann erstelle deine Django Projektordner-Struktur:
    Django-admin startproject <Django project name>

Ich habe auch meinen alten veralteten /usr/local/bin/Django-admin.py Gelöscht, da er erstellt wurde, bevor ich die Freuden von virtualenv entdeckte.

0
Brendan Quinn