ฉันจะติดตั้งไลบรารีภาพหลาม (PIL) ได้อย่างไร


35

ฉันจะติดตั้งไลบรารีภาพหลาม (PIL) บน Ubuntu ได้อย่างไร

ฉันพยายามทำ

sudo apt-get install python-imaging

แต่ตอนนี้เมื่อฉันเรียกใช้ python selftest.py (สคริปต์ที่ฉันได้รับจากที่ไหนสักแห่งในhttp://pythonware.com/products/pil/เว็บไซต์) ฉันจะได้รับ (ท่ามกลางข้อความเตือนอื่น ๆ ):

...
*** JPEG support not installed
*** ZLIB (PNG/ZIP) support not installed
...
*** 1 tests of 57 failed.

ฉันได้ทำผิดพลาด PIL - ฉันจะแก้ไขได้อย่างไร

อาจเป็นเพราะ PIL ใช้ได้ แต่ว่า "selftest.py" ไม่ใช่โปรแกรมที่เหมาะสมสำหรับการตรวจสอบเพื่อดูว่ามีการติดตั้ง PIL อย่างถูกต้องหรือไม่ฉันจะทราบได้อย่างไรว่าติดตั้ง PIL อย่างถูกต้องหรือไม่

(ฉันใช้ Ubuntu 12.04 LTS "Pangolin แม่นยำ")

(สิ่งที่ฉันพยายามทำในท้ายที่สุดคือการเพิ่มตัวสร้างบาร์โค้ด 2D ลงในโค้ดไพ ธ อนบางส่วนและตัวสร้างบาร์โค้ดแบบ 2D ทั้งหมดที่ฉันพบว่าเขียนด้วยไพ ธ อนดูเหมือนจะใช้ PIL)


2
คุณอาจต้องการลองใช้ PIL ในแอปพลิเคชันอาจมีปัญหากับselftest.py
Aaron Hill

1
ใน 18.04 ดูเหมือนว่าคุณเพียงแค่ทำหรือsudo apt-get install python-pil sudo apt-get install python3-pil
Shule

^ แน่นอนsudo apt-get install python-pilแค่ทำงานกับฉันบนราสเบียน
alecxe

คำตอบ:


25

สิ่งที่คล้ายกันเกิดขึ้นกับฉันฉันแก้ไขด้วยวิธีนี้

sudo apt-get install libjpeg libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev

pip install PILและพยายามที่มีการติดตั้งผ่านทาง

เพิ่มเติมเกี่ยวกับสิ่งที่pipจะสามารถพบได้ที่นี่ กล่าวโดยย่อคือวิธีที่สะดวก (และกลายเป็นวิธีมาตรฐาน) ในการติดตั้งไลบรารีหลาม

หากยังคงล้มเหลวอาจเนื่องมาจาก PIL ค้นหาไลบรารีเหล่านั้นในเส้นทางอื่น

แต่กลับกลายเป็นว่าการติดตั้ง APT ใส่ห้องสมุดภายใต้/ usr / lib / x86_64-ลินุกซ์ GNUและ PIL จะค้นหาพวกเขาใน/ usr / lib / ดังนั้นคุณต้องสร้าง symlink สำหรับ PIL เพื่อดู

ลองดูว่ามี libjpeg และ libz อยู่ใน/ usr / lib / x86_64-linux-gnuและสร้าง symlink ด้วยวิธีนี้ไหม

sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 /lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so.6 /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so.62 /usr/lib/

ที่มา: http://jj.isgeek.net/2011/09/install-pil-with-jpeg-support-on-ubuntu-oneiric-64bits/


สิ่งนี้ไม่ได้ผลสำหรับฉันบน Ubuntu 12.04 64 บิต
Gus E

1
ถ้ามันเหมาะกับความต้องการของคุณคุณสามารถลอง 'หมอน' เป็นการแทนที่แบบ PIL
Hernantz

7
pillowเมื่อใดก็ตามที่เป็นไปได้ใช้งาน มันเป็นหลัก PIL แต่ได้รับการบำรุงรักษาจริง
Thane Brimhall

แพ็คเกจ zlib1g-dev ไม่สามารถใช้งานได้ แต่ถูกอ้างอิงโดยแพ็คเกจอื่น นี่อาจหมายความว่าแพ็กเกจขาดหายไปล้าสมัยหรือมีอยู่จากแหล่งอื่นเท่านั้น E: ไม่สามารถค้นหาแพ็คเกจ libjpeg E: ไม่สามารถค้นหาแพ็คเกจ libjpeg-dev E: ไม่สามารถค้นหาแพ็คเกจ libfreetype6-dev E: แพ็คเกจ 'zlib1g -dev 'ไม่มีตัวเลือกการติดตั้ง
Aalok

แพคเกจภาพหลามใน Ubuntu 12.04 LTS เชื่อมโยงกับห้องสมุด JPEG และผู้เปลี่ยนแปลงกล่าวถึงผู้ปกครองหลายคนก่อนหน้านี้เมื่อเดือนกรกฎาคม 2554 บางทีนี่อาจจะselftest.pyเกิดความเสียหายเนื่องจากสิ่งนั้นเช่นกัน
Josip Rodin

30

วิธีการแก้ปัญหาข้างต้นไม่ได้ผลสำหรับฉันบน Ubuntu 12.10 เนื่องจาก libjpeg ไม่สามารถใช้ได้ในที่เก็บ

สิ่งที่ได้ผลสำหรับฉันคือ:

sudo apt-get build-dep python-imaging
sudo apt-get install libjpeg62 libjpeg62-dev

หากคุณได้รับข้อผิดพลาด "คุณต้องใส่ URIs 'แหล่งที่มา' บางรายการในแหล่งรายการของคุณ" จากนั้นตรวจสอบให้แน่ใจว่า /etc/apt/sources.list ของคุณมีรายการ deb-src ซึ่งตรงกับรายการ deb ของคุณ

จากนั้นคุณต้องเชื่อมโยงไฟล์จากตำแหน่งจริงบนเซิร์ฟเวอร์ของคุณไปยังตำแหน่งที่ PIL คาดหวังไว้

รุ่น 32 บิต

sudo ln -s /usr/lib/i386-linux-gnu/libz.so /usr/lib/libz.so
sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib/libjpeg.so
sudo ln -s /usr/lib/i386-linux-gnu/libfreetype.so /usr/lib/libfreetype.so

รุ่น 64 บิต

sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/libz.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/libfreetype.so

สุดท้าย pip install PIL

ที่ประสบความสำเร็จ!

ป้อนคำอธิบายรูปภาพที่นี่


อัพเดท ก.ย. 2557

หมอนเป็นทางแยกที่ทันสมัยกว่าของ PIL

#jpeg support
sudo apt-get install libjpeg-dev
#tiff support
sudo apt-get install libtiff-dev
#freetype support
sudo apt-get install libfreetype6-dev
#openjpeg200support (needed to compile from source)
wget http://downloads.sourceforge.net/project/openjpeg.mirror/2.0.1/openjpeg-2.0.1.tar.gz
tar xzvf openjpeg-2.0.1.tar.gz
cd openjpeg-2.0.1/
sudo apt-get install cmake
cmake .
sudo make install
#install pillow
pip install pillow

1
ได้ผลกับฉันใน 13.04 กับหมอนโดยไม่ต้องเชื่อมโยง
ยูจีน Nagorny

2
ทำงานให้ฉันด้วย (14.04 LTS 64-bit, unmodified จากด้านบน): sudo apt-get build-dep python-imaging sudo apt-get install libjpeg62 libjpeg62-dev
Peter Teoh

ฉันแค่ต้องการ "apt-get build-dep python-imaging"
peterretief

13

ฉันแค่อยากจะเพิ่มซึ่งมัน pip install pilใช้งานไม่ได้อีกต่อไปอย่างน้อยก็ในเครื่องของฉันคุณต้องทำ

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


5
ลองpip install Pillowแทนpip install pill(ไม่มีอยู่หลัง)
aclark

@Lynob นี้เหมือนกับ PIL หรือเปล่า และเป็นผู้สนับสนุนโดย TkInker?
3kstc

@ 3kstc ใช่มันเป็น
Lynob

4

คำตอบข้างต้นสร้างลิงค์สำหรับไลบรารี x64 ในตำแหน่งที่ตั้ง x86 แต่ฉันจะดาวน์โหลดแหล่ง PILจากนั้นเพิ่มบรรทัดเหล่านี้ใน setup.py:

    add_directory(library_dirs, "/usr/lib/x86_64-linux-gnu")
    add_directory(library_dirs, "/lib/x86_64-linux-gnu")

หลังจากบรรทัดเหล่านี้ (~ บรรทัด 211)

    # standard locations
    add_directory(library_dirs, "/usr/local/lib")
    add_directory(include_dirs, "/usr/local/include")

    add_directory(library_dirs, "/usr/lib")
    add_directory(include_dirs, "/usr/include")

ติดตั้ง PIL อีกครั้ง หากคุณใช้ pip:

pip uninstall PIL

จากนั้นเรียกใช้ไดเรกทอรีต้นทาง:

python setup.py install

2

วิธีนี้ใช้ได้ผลกับฉันใน Ubuntu 14.04 เนื่องจาก libjpeg ไม่สามารถใช้ได้ในที่เก็บ

ท้ายที่สุดสิ่งที่ทำงานให้ฉัน

sudo apt-get build-dep python-imaging
sudo apt-get install libjpeg62 libjpeg62-dev

2

sudo apt-get install python-imagingตอนนี้ติดตั้งหมอนไม่ PIL สำหรับselftest.pyคุณอาจต้องตรวจสอบแหล่งที่มาเพื่อเรียกใช้ และแน่นอนคุณต้องติดตั้งการพึ่งพาหากคุณต้องการให้ PIL สนับสนุนเช่น

sudo apt-get install libjpeg libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev

วิธีรัน PIL เวอร์ชันใหม่กว่าที่รวมอยู่ใน Ubuntu ::

pip install Pillow

2

ฉันต้อง pip ติดตั้ง Pillow ใน virtualenv ใน 14.04 (ไม่ได้ใช้แพ็คเกจระบบ)

วิธีสร้างหมอนจาก PyPI ภายใน virtualenv (Python 2.7):

$ sudo apt-get build-dep pillow
$ virtualenv venv
$ source venv/bin/activate
(venv)$ pip install pillow

... แล้วคุณสามารถนำเข้าPIL

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.