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?


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

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

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

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

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


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.


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/


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”


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

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

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

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


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


3

Spróbuj tego:

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

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


2

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


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.