2014-09-04 9 views
7

Ich bin ein Projekt verbinden, so möchte ich die environnment einzurichten, so was ich getan habe ist:Python/Django - „Can not Imagefield verwenden, da Kissen nicht installiert ist“

pip install -r requirements.txt 

Das komplett alle installierten Anforderungen einschließlich Django 1.7.0, Kissen 2.4.0 und einige andere.

Dann möchte ich die Datenbank erstellen:

python manage.py migrate 

Und Boom, Fehler, erhalte ich folgendes:

CommandError: System check identified some issues: 

ERRORS: 
stu.chan.icon: (fields.E210) Cannot use ImageField because Pillow is not installed. 
    HINT: Get Pillow at https://pypi.python.org/pypi/Pillow or run command "pip install pillow". 
stu.chan.image: (fields.E210) Cannot use ImageField because Pillow is not installed. 
    HINT: Get Pillow at https://pypi.python.org/pypi/Pillow or run command "pip install pillow". 
stu.Piec.icon: (fields.E210) Cannot use ImageField because Pillow is not installed. 
    HINT: Get Pillow at https://pypi.python.org/pypi/Pillow or run command "pip install pillow". 

... wie ich nicht Kissen installieren. Also überprüfte ich das installierte Paket (mit this Technik) und Pillow 2.4.0 IS installiert ist.

Dann habe ich versucht, auch wieder installieren zu zwingen: pip install --upgrade --force-reinstall Pillow==2.4.0

Aber nichts zu tun, ich die gleichen Fehler, wenn migrate läuft.

ich in virtualenv 1.11.6 mit Pip auf pip 1.2.1 herabgestuft (wegen einiger bekannten-noch-nicht-voll aufgelöste-Nor-verstanden issue mit pip python 3.4.0 und django 1.7.0 auf einem Mac OS X 10.6.7 eingewickelt bin mit und ssl).

Der gesamte obige Code ist innerhalb von virtualenv (bin/activate getan).

Haben Sie irgendwelche Ideen, warum dieses Problem und wie es zu lösen?

- - - - - - EDIT - - - - - -

Wenn ich die obige Kraft-Neuinstallation Befehl ausführen, (so viele Code wird outpouted ich es nicht alle, aber einfügen können), obwohl es Ausführungen mit "Erfolgreich installiert Kissen", gibt es in dem Code einige Warnungen:

building 'PIL._imaging' extension 
(blabla code) 
    _imaging.c:975:13: warning: array index of '1' indexes past the end of an array (that contains 1 elements) [-Warray-bounds] 
     value = PyTuple_GET_ITEM(xy, 1); 
       ^~~~~~~~~~~~~~~~~~~~~~~ 
    /usr/local/include/python3.4m/tupleobject.h:58:34: note: instantiated from: 
    #define PyTuple_GET_ITEM(op, i) (((PyTupleObject *)(op))->ob_item[i]) 
            ^
    /usr/local/include/python3.4m/tupleobject.h:27:5: note: array 'ob_item' declared here 
     PyObject *ob_item[1]; 
     ^
    1 warning generated. 

(blabla code) 
    libImaging/Unpack.c:867:1: warning: unused function 'copy3' [-Wunused-function] 
    copy3(UINT8* out, const UINT8* in, int pixels) 
    ^
    1 warning generated. 
+0

Sie erhalten einen Fehler bei der Installation Kissen ..? –

+0

Ich habe die Frage aktualisiert. Bitte schauen Sie sich die Warnungen während der Installation an. – lapin

+0

mit 'sudo' keine Warnung? –

Antwort

5

ich habe versucht:

  • globaly PIL installieren von "Imaging-1.1.7" mit s Kompilieren ome Anweisungen here, aber hat nicht funktioniert
  • Neu installieren Kissen und es ist global Abhängigkeit that link verwenden, aber hat nicht funktioniert
  • Neu installieren GCC4.2 this link verwenden, aber es hat nicht funktioniert

ich endlich herausgefunden, dass ich in dem Fall war, der in der wunderbaren Antwort auf this post beschrieben wird. Mit anderen Worten, ich betreibe einen Mac, dessen CPU 64-Bit-fähig ist, dessen Kernel-Firmware jedoch auf 32-Bit gesetzt ist. Das ist ein Problem, da das Projekt, an dem ich arbeite, für 64bit gebaut wurde.

Wie in that post erklärt, wenn Sie Python3 mit einem Installer (DMG) installieren, wird es schnüffeln, wenn der Kernel auf 32 Bit eingestellt ist und 32-Bit-Version von Python 3 entsprechend installieren.Aber wenn Sie laden Sie einfach die Tarball Quelle von Python-Website und installieren Sie es mit:

cd Python-3.4.1 
./configure 
make 
sudo make install 

Dann wird die 64-Bit-Version von python3 installiert werden soll. Welche können Sie überprüfen, indem Sie:

file /usr/local/bin/python3 
/usr/local/bin/python3: Mach-O 64-bit executable x86_64 

das getan, alle Probleme mit PIL/Kissen im virtualenv mit dieser 64-Bit-Version von python3 gegangen. Sogar das Downgrade der Pipe wurde überflüssig.

1

hatte ein ähnliches Problem, und meine Lösung war viel einfacher:

Offenbar Pakete PIL und Kissen können nicht nebeneinander bestehen. Wenn Sie Pillow verwenden möchten, müssen Sie zunächst PIL deinstallieren und anschließend das Kissen installieren.

Wenn Sie auf dem Mac sind, müssen Sie auch einige Bibliotheken mit brauen installieren. Erwähnt unten ist die Abfolge von Schritten:

$pip uninstall PIL 
$brew install libtiff libjpeg webp little-cms2 
$pip install Pillow 

Um zu testen, ob Kissen installiert und einsatzbereit, offen Interpreter Python und versuchen Sie Folgendes importieren:

>>> from PIL import Image 

* Beachten Sie, dass die Bibliothek noch sagt, PIL, aber jetzt importiert es von Pillow anstelle von PIL.

Wenn Sie in der Lage sind erfolgreich, dann importieren Sie sind gut zu gehen (aller Wahrscheinlichkeit nach werden Sie müssen nicht über die Einstellung Sorge PYTHONPATH oder 32/64-Bit-Installationen)

Quelle: https://pillow.readthedocs.io/en/latest/installation.html

+0

Der Kommentar 'zu testen, ob Kissen installiert ist [...] 'von PIL Import Image'' ist sehr hilfreich - in meinem Fall gibt es detailliertere Debugging-Informationen über einen ImportError im Zusammenhang mit libjpeg. – ptim

0

Ich hatte diesen Fehler mit dem PyCharm Debugger. Ich musste zu Settings -> 'Project Interpreter' gehen und 'Pillow' markieren und den kleinen Pfeil nach oben drücken, um es zu aktualisieren. Dann ist der Fehler verschwunden.

0

Ich habe das gleiche Problem bei der Implementation von Image Upload mit CLOUDinary bekommen, habe aber die obige Antwort gefunden, aber auf andere Weise.

sudo pip uninstall PIL 

sudo pip uninstall Pillow 

sudo pip install Pillow 

Danach mein Problem gelöst wurde!