Menginstal PIL dengan pip


349

Saya mencoba menginstal PIL (Perpustakaan Pencitraan Python) menggunakan perintah:

sudo pip install pil

tapi saya mendapatkan pesan berikut:

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

Bisakah Anda membantu saya menginstal PIL ??


Sudahkah Anda menginstal Xcode dan kemudian menginstal alat-alat baris perintah Xcode? Sepertinya Anda tidak memiliki compiler dentang.
Fiver

Jawaban:


586
  1. Instal Xcode dan Xcode Command Line Tools seperti yang disebutkan.
  2. Gunakan Bantal sebagai gantinya, karena PIL pada dasarnya sudah mati. Bantal adalah garpu PIL yang dirawat.

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

pip install Pillow

Jika Anda telah menginstal kedua Piton dan ingin menginstal ini untuk Python3:

python3 -m pip install Pillow

5
Saya mendapat clangkesalahan pada OSX Mavericks ketika saya mencoba ini, tetapi saya menemukan bahwa jawaban ini membantu dengan itu: stackoverflow.com/a/22322645/16959
Jason Sperske

34
Meskipun ini adalah jawaban yang valid dan berguna, itu benar-benar tidak menjawab pertanyaan. Bagi kita dalam proses rehabilitasi proyek-proyek lama yang mungkin memerlukan mengisi ketergantungan PIL supaya kita dapat menemukan hal berikutnya yang akan rusak, kita sebenarnya perlu mendapatkan ketergantungan yang sebenarnya (dan kadang-kadang bahkan perlu mendapatkan versi tertentu seseorang membuat retasan).
Namey

3
@Namey Memindahkan kode PIL yang ada ke Bantal dapat dilakukan dengan mudah . Port PIL ke Bantal . Bantal didasarkan pada kode PIL, dan telah berkembang menjadi versi PIL yang lebih baik, modern, dan lebih ramah.
GiriB

7
@GiriB Terima kasih atas pembaruannya. Poin utama saya adalah bahwa sering ada kasus di mana Anda memulai bekerja pada beberapa kode produksi lawas di mana ada 20 dependensi kuno, yang PIL mungkin satu, dan Anda perlu men-debug sesuatu untuk memperbaiki kode produksi. Dalam hal ini, Anda pasti tidak ingin harus menulis port untuk kode yang terhubung ke ~ 10 pustaka yang berbeda pada pengembangan dev Anda hanya untuk mulai men-debug kesalahan satu baris yang terjadi di lingkungan produksi. Semoga ini bisa menjelaskan.
Namey

Saya mencoba menggunakan perpustakaan yang menggunakan import Image. Apakah ada cara untuk mendapatkan Bantal untuk memberikan Gambar?
AnnanFay

60

Ini bekerja untuk saya:

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
Pada platform 64 bit, jalur yang ditautkan harus berbeda - misalnya /usr/lib/x86_64-linux-gnu/libfreetype.so. Untuk solusi arsitektur yang lebih independen, buat tautan seperti# ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib/
Mark Chackerian

Selalu masalah yang sama untuk header pencitraan: _imagingft.c: 73: 31: kesalahan fatal: freetype / fterrors.h: Tidak ada file atau direktori #include <freetype / fterrors.h> Jadi Anda harus menginstal python-imaging throught pip
c24b

Selalu menjadi masalah dalam header freetype seperti disebutkan di sini [ askubuntu.com/questions/507459/… ? SOlution: cd / usr / include ln -s freetype2 freetype
c24b

1
di bawah ubuntu 14.04 1 symlink diperlukan sudo ln -s /usr/include/freetype2 /usr/local/include/freetype
Akasha

1
bekerja dengan baik untuk saya rahasianya adalah PIL --allow-unverified --allow-all-external
eusoubrasileiro

54

Sangat mudah menggunakan apt install menggunakan perintah ini untuk menyelesaikannya

sudo apt-get install python-PIL

atau

sudo pip install pillow

atau

sudo easy_install pillow

2
jangan lupa untuk me-restart server notebook ipython Anda jika Anda menjalankannya.
shousper

sudo pip pasang bantal berhasil buat saya. sudo apt-get install python-PIL tidak.
Yu Shen

1
Saya menganggapnya peka terhadap huruf besar-kecil: sudo apt-get install python-PIL => Gagal (tidak ada paket) sudo apt-get install python-pil => Bekerja
Clarkey252

35

Di Mac OS X, gunakan perintah ini:

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

bekerja pada debian jessy juga !, hanya perlu menginstal python-dev sebelumnya :)
Agey

1
Saya harus menginstal libjpeg terlebih dahulu: brew install libjpeg
Pierre F

Akhirnya solusi aktual. Mac saya tidak memiliki apt-get: p, dan saya ingin menginstal di virtualenv pula.
sudo

gunakan sudo pip instal Bantal - seperti di bawah ini.
johndpope

33

Anda harus menginstal seperti yang dijelaskan di sini :

pip install image

26

Saya mendapat jawaban dari sebuah diskusi sini :

Saya mencoba

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

dan itu berhasil.


8
Pertimbangkan untuk menggunakan ini: pip install --no-index -f http://effbot.org/downloads/ -U PIL --trusted-host effbot.orgAlasan saya menggunakan yang ini adalah karena itu adalah URL yang tercantum oleh paket dan di pypi.python.org/pypi/PIL
Tom Myddeltyn

1
Saya mendapat peringatan untuk menggunakan HTTPS alih-alih HTTP. Setelah mengubah URL itu berfungsi dengan baik.
AnnanFay

@TomMyddeltyn Itu hampir berhasil kecuali saya mendapat kesalahan kompiler di mana ia tidak dapat menemukan X11 / Xlib.h
Jarang

@ Tidak Biasa Saya tidak yakin apa masalahnya, maaf.
Tom Myddeltyn

21

Install

pip install Pillow

Kemudian, Cukup impor di file Anda seperti,

from PIL import Image

Saya menggunakan windows. Ini bekerja untuk saya.

CATATAN :

Bantal adalah pengganti pengganti fungsional untuk Perpustakaan Pencitraan Python. Untuk menjalankan kode yang kompatibel dengan PIL dengan Bantal, perlu dimodifikasi untuk mengimpor modul Imaging dari namespace PIL alih-alih namespace global.

yaitu perubahan:

import Image

untuk:

from PIL import Image

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


Terima kasih! Saat membaca nama 'PIL' di from PIL import Imagesaya tidak pernah bisa menebak nama perpustakaan ini adalah 'Bantal'. Saya juga menggunakan Windows dan solusi Anda berhasil untuk saya.
Marcos Buarque

Bantal adalah pengganti pengganti fungsional untuk Perpustakaan Pencitraan Python. Untuk menjalankan kode yang kompatibel dengan PIL dengan Bantal, perlu dimodifikasi untuk mengimpor modul Imaging dari namespace PIL alih-alih namespace global. Yaitu berubah: import Imageke from PIL import Image pypi.org/project/Pillow/2.2.1
Chandan Sharma

Terima kasih atas informasi bckground tambahan!
Marcos Buarque

12

Saya rasa Anda menggunakan Mac. Lihat Bagaimana saya bisa menginstal PIL pada mac os x 10.7.2 Lion

Jika Anda menggunakan [homebrew] [], Anda dapat menginstal PIL dengan adil brew install pil. Anda kemudian mungkin perlu menambahkan direktori instal ( $(brew --prefix)/lib/python2.7/site-packages) ke PYTHONPATH Anda, atau menambahkan lokasi direktori PIL itu sendiri dalam file yang disebut PIL.pthfile di salah satu direktori paket situs Anda, dengan konten:

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

(dengan asumsi brew --prefixadalah /usr/local).

Atau, Anda bisa mengunduh / membuat / menginstalnya dari sumber:

# 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

Saya menjalankan hal di atas sekarang (pada OSX 10.7.2, dengan XCode 4.2.1 dan System Python 2.7.1) dan itu dibangun dengan baik, meskipun ada kemungkinan bahwa sesuatu di lingkungan saya non-default.

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


Meskipun ini menjelaskan cara menginstal pil, itu tidak melakukannya melalui pipsaat OP mencoba pada awalnya. Saya menemukan banyak penggunaan brewdi web saat ini yang kurang optimal. brewakan menginstal sedikit overhead tergantung pada apa yang ingin Anda lakukan. jadi pipmungkin masih akan menjadi pilihan terbaik untuk modul python.
mknaf

11

Saat ini, semua orang menggunakan Bantal, garpu PIL yang ramah, lebih dari PIL.

Dari pada: sudo pip install pil

Melakukan: sudo pip install pillow

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

Saya akan merekomendasikan untuk tidak melakukannya sudo pip install .... Itu bisa berakhir merusak instalasi sistem Anda dari Python, yang dapat mempengaruhi aplikasi sistem Anda. Coba gunakan lingkungan virtual Anaconda , venv atau Docker.
n1k31t4

11

Untuk Ubuntu, PIL tidak berfungsi lagi. Saya selalu mendapatkan:

Tidak ditemukan distribusi yang cocok untuk PIL

Jadi instal python-imaging:

sudo apt-get install python-imaging

6

Saya mengalami masalah yang sama, tetapi diselesaikan dengan instalasi python-dev.

Sebelum menginstal PIL, jalankan perintah berikut:

sudo apt-get install python-dev

Kemudian instal PIL:

pip install PIL

10
Ini tidak berfungsi untuk saya di Ubuntu 14. pip install pilmenghasilkan No distributions at all found for PIL, apakah saya menginstal python-dev pertama atau tidak.
aliteralmind

5

Saya memiliki beberapa kesalahan selama instalasi. Kalau-kalau ada yang punya ini juga. Meskipun begitu saya sudah duduk di bawah admin pengguna, tetapi tidak 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

Menambahkan "sudo" menyelesaikan masalah, dengan sudo berhasil:

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

5

Untuk CentOS:

yum install python-imaging

5

Saya mencoba semua jawaban, tetapi gagal. Langsung dapatkan sumbernya dari situs resmi lalu bangun kesuksesan instal.

  1. Buka situs http://www.pythonware.com/products/pil/#pil117
  2. Klik "Python Imaging Library 1.1.7 Source Kit" untuk mengunduh sumbernya
  3. tar xf Imaging-1.1.7.tar.gz
  4. cd Imaging-1.1.7
  5. sudo python setup.py install


3

Coba ini:

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

2
Meskipun jawaban ini mungkin benar, harap tambahkan beberapa penjelasan. Menanamkan logika yang mendasarinya lebih penting daripada hanya memberikan kode, karena itu membantu OP dan pembaca lain memperbaiki masalah ini dan masalah serupa itu sendiri.
CodeMouse92

Perhatikan bahwa perintah ini habis untuk saya. Bagaimanapun, itu akan ditinggalkan dalam beberapa minggu. sudo pip install --allow-external --allow-unverified PIL PILmungkin juga berfungsi untuk saat ini.
Belajar statistik dengan contoh

3
--allow-externaldan --allow-unverifiedkeduanya sudah usang. pip install pillowadalah jawaban yang benar.
Dorian

1
Jawaban yang saya posting disarankan kepada saya oleh stderr. Jadi, sementara jawaban saya sudah ketinggalan zaman, itu bukan pada saat saya menulisnya. Juga, saya minta maaf atas pesan saya yang diarahkan ke JasonMc92 (yang telah dihapus). Nada suaraku keluar dari garis, tetapi perasaanku tetap ada. Ada sesuatu yang tidak menyenangkan tentang menggulung halaman depan dan menyalin / menempelkan catatan Anda tentang "menanamkan logika yang mendasarinya". Mungkin Anda mengejar pengejaran, dan saya kira itu baik-baik saja, tetapi demi konsistensi, silakan tinggalkan komentar pada semua jawaban serupa lainnya untuk pertanyaan ini yang gagal menjadi dasar logika.
alfonso


3
  • Pertama, Anda harus menjalankan ini sudo apt-get build-dep python-imagingyang akan memberi Anda semua dependensi yang mungkin Anda butuhkan

  • Lalu lari sudo apt-get update && sudo apt-get -y upgrade

  • Diikuti oleh sudo apt-get install python-pip

  • Dan akhirnya instal Pil pip install pillow


2

Cari pada manajer paket sebelum menggunakan pip. Di Arch linux Anda bisa mendapatkan PIL denganpacman -S python2-pillow


0

Ada alat paket Python lain yang disebut conda . Conda lebih disukai (saya percaya) daripada pip ketika ada perpustakaan yang perlu menginstal C ++ dan binding lainnya yang bukan Python murni. Conda menyertakan pip dalam pemasangannya juga sehingga Anda masih dapat menggunakan pip, tetapi Anda juga mendapatkan manfaat dari conda.

Conda juga menginstal IPython , pil, dan banyak perpustakaan lainnya secara default. Saya pikir Anda akan menyukainya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.