Instalowanie PIL za pomocą pip

349

Próbuję zainstalować PIL (bibliotekę obrazowania Python) za pomocą polecenia:

sudo pip install pil

ale dostaję następujący komunikat:

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

Czy możesz mi pomóc zainstalować PIL?

użytkownik3006710
źródło
Czy zainstalowałeś Xcode, a następnie zainstalowałeś narzędzia wiersza poleceń Xcode? Wygląda na to, że nie masz kompilatora clang.
Fiver

Odpowiedzi:

586
  1. Zainstaluj narzędzia Xcode i Xcode w wierszu poleceń, jak wspomniano.
  2. Zamiast tego użyj poduszki, ponieważ PIL jest w zasadzie martwy. Poduszka to utrzymany widelec PIL.

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

pip install Pillow

Jeśli masz zainstalowane oba Pythony i chcesz zainstalować to dla Python3:

python3 -m pip install Pillow
FogleBird
źródło
5
Dostałem clangbłąd na OSX Mavericks kiedy to próbowałem, ale okazało się, że ta odpowiedź pomogła w tym: stackoverflow.com/a/22322645/16959
Jason Sperske
34
Chociaż jest to ważna i użyteczna odpowiedź, tak naprawdę nie odpowiada na pytanie. Dla tych z nas, którzy są w trakcie rehabilitacji starych projektów, które mogą wymagać wypełnienia zależności PIL, abyśmy mogli znaleźć następną rzecz, która się zepsuje, faktycznie potrzebujemy uzyskać rzeczywistą zależność (a czasem nawet potrzebujemy konkretnej wersji na którym ktoś zbudował hack).
Namey
3
@Namey Przenoszenie istniejącego kodu PIL na Pillow można łatwo zrobić . Przenieś PIL do poduszki . Poduszka jest oparta na kodzie PIL i przekształciła się w lepszą, nowoczesną i bardziej przyjazną wersję PIL.
GiriB
7
@GiriB Dzięki za aktualizację. Moja główna uwaga była taka, że ​​często zdarza się, że zaczynasz pracę nad jakimś starszym kodem produkcyjnym, w którym istnieje 20 starożytnych zależności, z których PIL może być jednym, i musisz coś debugować, aby naprawić kod produkcyjny. W takim przypadku z całą pewnością nie trzeba pisać portów dla kodu podłączonego do ~ 10 różnych bibliotek w kompilacji programisty, aby rozpocząć debugowanie błędu jednowierszowego, który występuje w środowisku produkcyjnym. Mam nadzieję, że to wyjaśnia.
Namey
Próbuję użyć biblioteki, która używa import Image. Czy istnieje sposób, aby Pillow dostarczył obraz?
AnnanFay,
60

To działa dla mnie:

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
madjardi
źródło
9
Na platformach 64-bitowych połączona ścieżka musi być inna - np. /Usr/lib/x86_64-linux-gnu/libfreetype.so. Aby uzyskać bardziej niezależne od architektury rozwiązanie, utwórz łącza takie jak# ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib/
Mark Chackerian
Zawsze ten sam problem dla nagłówków obrazowania: _imagingft.c: 73: 31: błąd krytyczny: freetype / fterrors.h: Brak takiego pliku lub katalogu #include <freetype / fterrors.h> Więc musisz zainstalować obrazowanie python przez pip
c24b
Zawsze występuje problem z nagłówkami freetype, takimi jak wspomniane tutaj [ askubuntu.com/questions/507459/… ? Rozwiązanie: cd / usr / include ln -s freetype2 freetype
c24b
1
pod Ubuntu 14.04 1 potrzeba więcej dowiązań symbolicznych sudo ln -s /usr/include/freetype2 /usr/local/include/freetype
Akasha
1
działało dobrze dla mnie sekretem było - niepotwierdzone PIL - niedopuszczalne wszystko
eusoubrasileiro
54

To bardzo proste, używając apt install, użyj tego polecenia, aby to zrobić

sudo apt-get install python-PIL

lub

sudo pip install pillow

lub

sudo easy_install pillow
redchief
źródło
2
nie zapomnij zrestartować serwera ipython, jeśli go masz.
shousper
Poduszka sudo pip install działała dla mnie. sudo apt-get install python-PIL nie.
Yu Shen
1
Odkryłem, że rozróżniana jest wielkość liter, więc: sudo apt-get install python-PIL => nie powiodło się (nie znaleziono pakietu) sudo apt-get install python-pil => działał
Clarkey252
35

W systemie Mac OS X użyj tego polecenia:

sudo pip install https://effbot.org/media/downloads/Imaging-1.1.7.tar.gz
Ryan Lee
źródło
działał również na
Debianie Jessie
1
Musiałem najpierw zainstalować libjpeg: brew install libjpeg
Pierre F
Wreszcie rzeczywiste rozwiązanie. Mój Mac nie ma apt-get: p, a mimo to chcę zainstalować w virtualenv.
sudo
użyj sudo pip install Pillow - jak poniżej.
johndpope
33

Powinieneś zainstalować zgodnie z opisem tutaj :

pip install image
gtangil
źródło
26

Tutaj otrzymałem odpowiedź z dyskusji :

próbowałem

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

i zadziałało.

ismailsunni
źródło
8
Zastanów się nad tym: pip install --no-index -f http://effbot.org/downloads/ -U PIL --trusted-host effbot.orgPowodem, dla którego go użyłem, jest to, że jest to adres URL wymieniony w pakiecie i na pypi.python.org/pypi/PIL
Tom Myddeltyn
1
Dostałem ostrzeżenie, aby używać HTTPS zamiast HTTP. Po zmianie adresu URL działało świetnie.
AnnanFay,
@TomMyddeltyn To prawie działało, z wyjątkiem tego, że dostałem błąd kompilatora, w którym nie można znaleźć X11 / Xlib.h
Niezbyt często
@Niezwykle nie jestem pewien, na czym polega problem, przepraszam.
Tom Myddeltyn
21

zainstalować

pip install Pillow

Następnie wystarczy zaimportować do pliku, np.

from PIL import Image

Korzystam z systemu Windows. To działa dla mnie.

UWAGA :

Poduszka jest funkcjonalnym zamiennym zamiennikiem biblioteki obrazów Python. Aby uruchomić istniejący kod zgodny z PIL za pomocą Pillow, należy go zmodyfikować, aby zaimportować moduł Imaging z przestrzeni nazw PIL zamiast z globalnej przestrzeni nazw.

tj. zmiana:

import Image

do:

from PIL import Image

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

Chandan Sharma
źródło
Dzięki! Czytając w nim nazwę „PIL” from PIL import Image, nigdy nie mogłem odgadnąć, że nazwa tej biblioteki to „Poduszka”. Korzystam również z systemu Windows, a twoje rozwiązanie zadziałało dla mnie.
Marcos Buarque
Poduszka jest funkcjonalnym zamiennym zamiennikiem biblioteki obrazów Python. Aby uruchomić istniejący kod zgodny z PIL za pomocą Pillow, należy go zmodyfikować, aby zaimportować moduł Imaging z przestrzeni nazw PIL zamiast z globalnej przestrzeni nazw. Tj. Zmiana: import Imagena from PIL import Image pypi.org/project/Pillow/2.2.1
Chandan Sharma
Dziękujemy za dodatkowe informacje bckground!
Marcos Buarque
12

Rozumiem, że jesteś na Macu. Zobacz Jak mogę zainstalować PIL na Mac OS X 10.7.2 Lion

Jeśli używasz [homebrew] [], możesz zainstalować PIL za pomocą just brew install pil. Następnie może być konieczne dodanie katalogu instalacyjnego ( $(brew --prefix)/lib/python2.7/site-packages) do ścieżki PYTHONPATH lub dodanie lokalizacji samego katalogu PIL w pliku o nazwie PIL.pthfile w dowolnym katalogu katalogów pakietów witryny z zawartością:

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

(zakładając, że brew --prefixjest /usr/local).

Alternatywnie możesz po prostu pobrać / zbudować / zainstalować go ze źródła:

# 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

Właśnie uruchomiłem powyższe (na OSX 10.7.2, z XCode 4.2.1 i System Python 2.7.1) i zbudowało się dobrze, chociaż istnieje możliwość, że coś w moim środowisku jest inne niż domyślne.

[homebrew]: http://mxcl.github.com/homebrew/ „Homebrew”

KGo
źródło
Wyjaśnia to sposób instalacji pil, ale nie robi tego za pośrednictwem pippoczątkowej wersji OP. Uważam, że obfite korzystanie z brewInternetu jest obecnie nieoptymalne. brewzainstaluje sporo narzutu w zależności od tego, co chcesz zrobić. więc pipprawdopodobnie nadal byłby najlepszym wyborem dla modułów Pythona.
mknaf
11

Obecnie wszyscy używają Pillow, przyjaznego widelca PIL, zamiast PIL.

Zamiast: sudo pip install pil

Zrobić: sudo pip install pillow

$ sudo apt-get install python-imaging
$ sudo -H pip install pillow
Dmitrij Pleszkow
źródło
Odradzam robienie tego sudo pip install .... Może to spowodować uszkodzenie instalacji Pythona w systemie, co może wpłynąć na aplikacje twojego systemu. Spróbuj użyć środowisk wirtualnych Anaconda , venv lub Docker.
n1k31t4
11

W systemie Ubuntu PIL już nie działa. Zawsze dostaję:

Nie znaleziono pasującego rozkładu dla PIL

Zainstaluj więc Python-Imaging:

sudo apt-get install python-imaging
Aneesh RS
źródło
6

Mam ten sam problem, ale problem został rozwiązany podczas instalacji python-dev.

Przed zainstalowaniem PIL uruchom następujące polecenie:

sudo apt-get install python-dev

Następnie zainstaluj PIL:

pip install PIL
Kedar.Aitawdekar
źródło
10
Nie działało to dla mnie na Ubuntu 14. To pip install pilpowoduje No distributions at all found for PIL, że najpierw instaluję Python-dev, czy nie.
aliteralmind
5

Miałem kilka błędów podczas instalacji. Na wypadek, gdyby ktoś też to miał. Mimo to siedziałem już jako administrator, ale nie rootowałem.

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

Dodanie „sudo” rozwiązało problem, z sudo działało:

~/Documents/mv-server: $ sudo pip install Pillow
Denis Kutlubaev
źródło
5

W przypadku CentOS:

yum install python-imaging
imos
źródło
5

Próbowałem wszystkich odpowiedzi, ale nie udało mi się. Uzyskaj bezpośrednio źródło z oficjalnej strony, a następnie zbuduj instalację.

  1. Przejdź do strony http://www.pythonware.com/products/pil/#pil117
  2. Kliknij „Python Imaging Library 1.1.7 Source Kit”, aby pobrać źródło
  3. tar xf Imaging-1.1.7.tar.gz
  4. cd Imaging-1.1.7
  5. sudo python setup.py install
ZhouPeng
źródło
3

Przybiłem go za pomocą sudo port install py27-Pillow

Alexandre Simões
źródło
3

Spróbuj tego:

sudo pip install PIL --allow-external PIL --allow-unverified PIL
alfonso
źródło
2
Chociaż ta odpowiedź może być poprawna, dodaj wyjaśnienie. Nadanie podstawowej logice jest ważniejsze niż podanie kodu, ponieważ pomaga OP i innym czytelnikom samodzielnie naprawić ten i podobne problemy.
CodeMouse92,
Zauważ, że upłynęło dla mnie to polecenie. W każdym razie zostanie wycofany za kilka tygodni. sudo pip install --allow-external --allow-unverified PIL PILmoże również działać na teraz.
Nauka statystyk na przykładzie
3
--allow-externali --allow-unverifiedoba są przestarzałe. pip install pillowjest poprawną odpowiedzią.
Dorian
1
Odpowiedź, którą zamieściłem, zasugerowała mi stderr. Więc chociaż moja odpowiedź jest już nieaktualna, nie było jej w chwili, gdy ją napisałem. Przepraszam również za moją wiadomość skierowaną do JasonMc92 (która została już usunięta). Mój ton był nie na linii, ale moje sentymenty pozostają. Jest coś niesmacznego w trollowaniu pierwszej strony i kopiowaniu / wklejaniu notatki na temat „przekazywania logiki leżącej u podstaw”. Być może gonisz za odznaką i myślę, że to w porządku, ale ze względu na spójność, zostaw komentarz na wszystkie inne podobne odpowiedzi na to pytanie, które nie są zbyt logiczne.
alfonso
3
  • Najpierw uruchom to, sudo apt-get build-dep python-imagingco da ci wszystkie zależności, których możesz potrzebować

  • Następnie uruchomić sudo apt-get update && sudo apt-get -y upgrade

  • Śledzony przez sudo apt-get install python-pip

  • A potem w końcu zainstaluj Pil pip install pillow

Ted Taylor of Life
źródło
2

Wyszukaj w menedżerze pakietów przed użyciem pip. Na Arch Linux można uzyskać PIL przezpacman -S python2-pillow

khanh tran
źródło
0

Istnieje inne narzędzie do pakietów Python o nazwie conda. Conda jest preferowana (jak sądzę) nad pipem, gdy istnieją biblioteki, które muszą zainstalować C ++ i inne wiązania, które nie są czystym Pythonem. Conda zawiera również pip w swojej instalacji, więc możesz nadal używać pipa, ale zyskujesz również zalety conda.

Conda domyślnie instaluje również IPython , pil i wiele innych bibliotek. Myślę że ci się sposoba.

Chet
źródło