PIL mit pip installieren


349

Ich versuche, PIL (die Python Imaging Library) mit dem folgenden Befehl zu installieren:

sudo pip install pil

aber ich bekomme folgende Nachricht:

Downloading/unpacking PIL
  You are installing a potentially insecure and unverifiable file. Future versions of pip will default to disallowing insecure files.
  Downloading PIL-1.1.7.tar.gz (506kB): 506kB downloaded
  Running setup.py egg_info for package PIL
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py

Installing collected packages: PIL
  Running setup.py install for PIL
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py
    --- using frameworks at /System/Library/Frameworks
    building '_imaging' extension
    clang -fno-strict-aliasing -fno-common -dynamic -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe -IlibImaging -I/System/Library/Frameworks/Python.framework/Versions/2.7/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c _imaging.c -o build/temp.macosx-10.8-intel-2.7/_imaging.o
    unable to execute clang: No such file or directory
    error: command 'clang' failed with exit status 1
    Complete output from command /usr/bin/python -c "import setuptools;__file__='/private/tmp/pip_build_root/PIL/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-AYrxVD-record/install-record.txt --single-version-externally-managed:
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py

running install

running build

.
.
.
.

copying PIL/XVThumbImagePlugin.py -> build/lib.macosx-10.8-intel-2.7

running build_ext

--- using frameworks at /System/Library/Frameworks

building '_imaging' extension

creating build/temp.macosx-10.8-intel-2.7

creating build/temp.macosx-10.8-intel-2.7/libImaging

clang -fno-strict-aliasing -fno-common -dynamic -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe -IlibImaging -I/System/Library/Frameworks/Python.framework/Versions/2.7/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c _imaging.c -o build/temp.macosx-10.8-intel-2.7/_imaging.o

unable to execute clang: No such file or directory

error: command 'clang' failed with exit status 1

----------------------------------------
Cleaning up

Könnten Sie mir bitte bei der Installation von PIL helfen?


Haben Sie Xcode installiert und dann die Befehlszeilentools von Xcode installiert? Es sieht so aus, als hätten Sie keinen Clang-Compiler.
Fiver

Antworten:


586
  1. Installieren Sie die Xcode- und Xcode-Befehlszeilentools wie erwähnt.
  2. Verwenden Sie stattdessen Pillow, da PIL im Grunde genommen tot ist. Pillow ist eine gepflegte Gabel aus PIL.

https://pypi.python.org/pypi/Pillow/2.2.1

pip install Pillow

Wenn Sie beide Pythons installiert haben und dies für Python3 installieren möchten:

python3 -m pip install Pillow

5
Ich habe einen clangFehler unter OSX Mavericks erhalten, als ich dies versuchte, aber ich fand, dass diese Antwort dabei half: stackoverflow.com/a/22322645/16959
Jason Sperske

34
Dies ist zwar eine gültige und nützliche Antwort, aber sie beantwortet die Frage wirklich nicht. Für diejenigen von uns, die gerade alte Projekte rehabilitieren, für die möglicherweise eine PIL-Abhängigkeit ausgefüllt werden muss, damit wir das nächste Problem finden können, müssen wir tatsächlich die tatsächliche Abhängigkeit ermitteln (und manchmal sogar eine bestimmte Version dass jemand einen Hack aufgebaut hat).
Namey

3
@Namey Das Portieren des vorhandenen PIL-Codes auf Pillow ist einfach . Port PIL zum Kissen . Pillow basiert auf dem PIL-Code und hat sich zu einer besseren, moderneren und benutzerfreundlicheren Version von PIL entwickelt.
GiriB

7
@GiriB Danke für das Update. Mein Hauptpunkt war, dass es häufig Fälle gibt, in denen Sie mit der Arbeit an einem alten Produktionscode beginnen, in dem es 20 alte Abhängigkeiten gibt, von denen PIL eine sein könnte, und Sie etwas debuggen müssen, um eine Korrektur im Produktionscode vorzunehmen. In diesem Fall möchten Sie mit Sicherheit keine Ports für Code schreiben müssen, der mit ~ 10 verschiedenen Bibliotheken in Ihrem Entwickler-Build verbunden ist, um mit dem Debuggen des einzeiligen Fehlers zu beginnen, der in der Produktionsumgebung auftritt. Hoffe das klärt sich.
Namey

Ich versuche eine Bibliothek zu verwenden, die verwendet import Image. Gibt es eine Möglichkeit, Pillow dazu zu bringen, ein Bild bereitzustellen?
AnnanFay

60

Das funktioniert bei mir:

apt-get install python-dev
apt-get install libjpeg-dev
apt-get install libjpeg8-dev
apt-get install libpng3
apt-get install libfreetype6-dev
ln -s /usr/lib/i386-linux-gnu/libfreetype.so /usr/lib
ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib
ln -s /usr/lib/i386-linux-gnu/libz.so /usr/lib

pip install PIL  --allow-unverified PIL --allow-all-external

9
Auf 64-Bit-Plattformen muss der verknüpfte Pfad unterschiedlich sein - z. B. /usr/lib/x86_64-linux-gnu/libfreetype.so. Für eine architekturunabhängigere Lösung erstellen Sie die Links wie# ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib/
Mark Chackerian

Immer das gleiche Problem für Header von Imaging: _imagingft.c: 73: 31: Schwerwiegender Fehler: freetype / fterrors.h: Keine solche Datei oder kein solches Verzeichnis #include <freetype / fterrors.h> Sie müssen also Python-Imaging über Pip installieren
c24b

Immer ein Problem in Freetype-Headern wie hier erwähnt [ askubuntu.com/questions/507459/… ? Lösung: cd / usr / include ln -s freetype2 freetype
c24b

1
unter ubuntu 14.04 1 weiterer symlink ist notwendig sudo ln -s /usr/include/freetype2 /usr/local/include/freetype
Akasha

1
funktionierte gut für mich das Geheimnis war die --allow-unbestified PIL --allow-all-external
eusoubrasileiro

54

Es ist sehr einfach, apt install zu verwenden. Verwenden Sie diesen Befehl, um dies zu erledigen

sudo apt-get install python-PIL

oder

sudo pip install pillow

oder

sudo easy_install pillow

2
Vergessen Sie nicht, Ihren ipython Notebook-Server neu zu starten, wenn Sie einen ausführen.
Shousper

sudo pip install kissen hat bei mir funktioniert. sudo apt-get install python-PIL nicht.
Yu Shen

1
Ich fand es zwischen Groß- und Kleinschreibung zu unterscheiden, also: sudo apt-get install python-PIL => Fehlgeschlagen (kein Paket gefunden) sudo apt-get install python-pil => Arbeitete
Clarkey252

35

Verwenden Sie unter Mac OS X den folgenden Befehl:

sudo pip install https://effbot.org/media/downloads/Imaging-1.1.7.tar.gz

arbeitete auch an Debian Jessy!, musste nur Python-Dev im Voraus installieren :)
Agey

1
Ich musste zuerst libjpeg installieren: brew install libjpeg
Pierre F

Endlich eine konkrete Lösung. Mein Mac hat kein apt-get: p und ich möchte es trotzdem in einer virtuellen Umgebung installieren.
Sudo

Verwenden Sie Sudo Pip Install Pillow - wie unten.
Johndpope


26

Ich habe die Antwort von einer Diskussion hier bekommen :

Ich habe es versucht

pip install --no-index -f http://dist.plone.org/thirdparty/ -U PIL

und es hat funktioniert.


8
Erwägen Siepip install --no-index -f http://effbot.org/downloads/ -U PIL --trusted-host effbot.org
Folgendes

1
Ich habe eine Warnung erhalten, HTTPS anstelle von HTTP zu verwenden. Nach dem Ändern der URL hat es super funktioniert.
AnnanFay

@ TomMyddeltyn Das hat fast funktioniert, außer dass ich einen Compilerfehler habe, bei dem X11 / Xlib.h nicht gefunden werden kann
Gelegentlich

@ Gelegentlich bin ich mir nicht sicher, was das Problem ist, sorry.
Tom Myddeltyn

21

Installieren

pip install Pillow

Dann importieren Sie einfach in Ihre Datei wie:

from PIL import Image

Ich benutze Windows. Es funktioniert für mich.

HINWEIS :

Pillow ist ein funktionaler Ersatz für die Python Imaging Library. Um Ihren vorhandenen PIL-kompatiblen Code mit Pillow auszuführen, muss er geändert werden, um das Imaging-Modul aus dem PIL-Namespace anstelle des globalen Namespace zu importieren.

dh ändern:

import Image

zu:

from PIL import Image

https://pypi.org/project/Pillow/2.2.1/


Vielen Dank! Beim Lesen des Namens 'PIL' in from PIL import Imagekonnte ich nie erraten, dass der Name dieser Bibliothek 'Pillow' war. Ich bin auch unter Windows und Ihre Lösung hat für mich funktioniert.
Marcos Buarque

Pillow ist ein funktionaler Ersatz für die Python Imaging Library. Um Ihren vorhandenen PIL-kompatiblen Code mit Pillow auszuführen, muss er geändert werden, um das Imaging-Modul aus dem PIL-Namespace anstelle des globalen Namespace zu importieren. Dh ändern: import Imagezu from PIL import Image pypi.org/project/Pillow/2.2.1
Chandan Sharma

Vielen Dank für die zusätzlichen Hintergrundinformationen!
Marcos Buarque

12

Ich nehme an, Sie sind auf dem Mac. Siehe Wie kann ich PIL auf Mac OS X 10.7.2 Lion installieren?

Wenn Sie [homebrew] [] verwenden, können Sie die PIL mit just installieren brew install pil. Möglicherweise müssen Sie dann das Installationsverzeichnis ( $(brew --prefix)/lib/python2.7/site-packages) zu Ihrem PYTHONPATH hinzufügen oder den Speicherort des PIL-Verzeichnisses selbst in einer Datei namens PIL.pthfile in einem Ihrer Site-Package-Verzeichnisse mit folgendem Inhalt hinzufügen :

/usr/local/lib/python2.7/site-packages/PIL

(vorausgesetzt brew --prefixist/usr/local ).

Alternativ können Sie es einfach von der Quelle herunterladen / erstellen / installieren:

# download
curl -O -L http://effbot.org/media/downloads/Imaging-1.1.7.tar.gz
# extract
tar -xzf Imaging-1.1.7.tar.gz
cd Imaging-1.1.7
# build and install
python setup.py build
sudo python setup.py install
# or install it for just you without requiring admin permissions:
# python setup.py install --user

Ich habe das oben genannte gerade ausgeführt (unter OSX 10.7.2 mit XCode 4.2.1 und System Python 2.7.1) und es hat einwandfrei funktioniert, obwohl die Möglichkeit besteht, dass etwas in meiner Umgebung nicht standardmäßig ist.

[Homebrew]: http://mxcl.github.com/homebrew/ "Homebrew"


Während dies die Installation erklärt pil, erfolgt dies nicht über, pipwie OP es ursprünglich versucht hat. Ich finde die reichliche Nutzung brewim Internet heutzutage suboptimal. brewwird ziemlich viel Overhead installieren, je nachdem, was Sie wollen. Dies pipwäre wahrscheinlich immer noch die beste Wahl für Python-Module.
Mknaf

11

Heutzutage verwendet jeder Pillow, eine freundliche PIL-Gabel, über PIL.

Anstatt: sudo pip install pil

Tun: sudo pip install pillow

$ sudo apt-get install python-imaging
$ sudo -H pip install pillow

Ich würde davon abraten, es jemals zu tun sudo pip install .... Dies könnte dazu führen, dass die Python-Installation Ihres Systems unterbrochen wird, was sich auf Anwendungen Ihres Systems auswirken kann. Versuchen Sie es mit virtuellen Anaconda-Umgebungen , venv oder Docker.
n1k31t4

11

Für Ubuntu funktioniert PIL nicht mehr. Ich bekomme immer:

Für PIL wurde keine passende Verteilung gefunden

Installieren Sie also Python-Imaging:

sudo apt-get install python-imaging

6

Ich habe das gleiche Problem, aber es wird mit der Installation von gelöst python-dev.

Führen Sie vor der Installation von PIL den folgenden Befehl aus:

sudo apt-get install python-dev

Dann installieren Sie PIL:

pip install PIL

10
Dies funktionierte bei Ubuntu 14 nicht. Dies pip install pilführt dazu No distributions at all found for PIL, ob ich zuerst Python-Dev installiere oder nicht.
Aliteralmind

5

Ich hatte einige Fehler während der Installation. Nur für den Fall, dass jemand das auch hat. Trotzdem saß ich schon unter admin user, aber nicht unter root.

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/PIL'

Storing debug log for failure in /Users/wzbozon/Library/Logs/pip.log

Das Hinzufügen von "sudo" löste das Problem, mit sudo funktionierte es:

~/Documents/mv-server: $ sudo pip install Pillow


5

Ich habe alle Antworten ausprobiert, bin aber gescheitert. Holen Sie sich die Quelle direkt von der offiziellen Website und erstellen Sie dann den Installationserfolg.

  1. Gehen Sie zur Website http://www.pythonware.com/products/pil/#pil117
  2. Klicken Sie auf "Python Imaging Library 1.1.7 Source Kit", um die Quelle herunterzuladen
  3. tar xf Imaging-1.1.7.tar.gz
  4. cd Imaging-1.1.7
  5. sudo python setup.py install


3

Versuche dies:

sudo pip install PIL --allow-external PIL --allow-unverified PIL

2
Obwohl diese Antwort richtig sein mag, fügen Sie bitte eine Erklärung hinzu. Die Vermittlung der zugrunde liegenden Logik ist wichtiger als nur die Angabe des Codes, da dies dem OP und anderen Lesern hilft, dieses und ähnliche Probleme selbst zu beheben.
CodeMouse92

Beachten Sie, dass dieser Befehl für mich abgelaufen ist. Wie auch immer, es wird in ein paar Wochen veraltet sein.sudo pip install --allow-external --allow-unverified PIL PILkann auch vorerst funktionieren.
Lernstatistiken am Beispiel

3
--allow-external und --allow-unverified sind beide veraltet. pip install pillowist die richtige Antwort.
Dorian

1
Die Antwort, die ich gepostet habe, wurde mir vom stderr vorgeschlagen. Obwohl meine Antwort jetzt veraltet ist, war sie nicht zu dem Zeitpunkt, als ich sie schrieb. Außerdem entschuldige ich mich für meine Nachricht an JasonMc92 (die inzwischen entfernt wurde). Mein Ton war falsch, aber mein Gefühl bleibt. Es ist etwas Unangenehmes, die Titelseite zu durchsuchen und Ihre Notiz über "Vermittlung der zugrunde liegenden Logik" zu kopieren / einzufügen. Vielleicht jagen Sie Abzeichen, und ich denke, das ist in Ordnung, aber aus Gründen der Konsistenz hinterlassen Sie bitte einen Kommentar zu allen anderen ähnlichen Antworten auf diese Frage, die der Logik nicht zugrunde liegen.
Alfonso


3
  • Zuerst sollten Sie dies ausführen sudo apt-get build-dep python-imaging, um alle Abhängigkeiten zu erhalten, die Sie möglicherweise benötigen

  • Dann renne sudo apt-get update && sudo apt-get -y upgrade

  • gefolgt von sudo apt-get install python-pip

  • Und dann endlich Pil installieren pip install pillow


2

Suchen Sie vor der Verwendung im Paketmanager pip. Unter Arch Linux können Sie PIL von erhaltenpacman -S python2-pillow


0

Es gibt ein anderes Python-Paket-Tool namens conda . Conda wird (glaube ich) Pip vorgezogen, wenn es Bibliotheken gibt, die C ++ und andere Bindungen installieren müssen, die nicht reines Python sind. Conda bezieht Pip ebenfalls in seine Installation ein, sodass Sie Pip weiterhin verwenden können, aber Sie erhalten auch die Vorteile von Conda.

Conda installiert standardmäßig auch IPython , pil und viele andere Bibliotheken. Ich denke du wirst es mögen.

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.