W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
從PyPI下載并提取源代碼壓縮文件。
您無需安裝所有支持的外部資源庫即可使用 Pillow 的基本功能。默認(rèn)情況下需要Zlib和libjpeg。
我們的Docker 鏡像存儲(chǔ)庫中有 Dockerfiles用于安裝某些操作系統(tǒng)的依賴項(xiàng)。
Pillow 的許多功能都需要外部庫:
libjpeg
?提供jpeg功能。 --disable-jpeg
?參數(shù)禁用 。zlib
?提供對(duì)壓縮PNG的訪問--disable-zlib
?參數(shù)禁用。libtiff
?提供壓縮的TIFF功能libfreetype
?提供與類型相關(guān)的服務(wù)littlecms
? 提供顏色管理libwebp
?提供WebP格式。tcl/tk
?提供對(duì)tkinter位圖和照片圖像的支持。openjpeg
?提供jpeg 2000功能。libimagequant
?提供改進(jìn)的顏色量化libraqm
?提供復(fù)雜的文本布局支持。libxcb
?提供Grab Screenx11支持。安裝先決條件后,運(yùn)行:
python3 -m pip install --upgrade pip python3 -m pip install --upgrade Pillow
如果先決條件安裝在您機(jī)器的標(biāo)準(zhǔn)庫位置(例如/usr
或/usr/local
),則不需要額外的配置。如果它們安裝在非標(biāo)準(zhǔn)位置,您可能需要通過編輯setup.py
或 setup.cfg
或通過在命令行上添加環(huán)境變量來配置 ?setuptools
?以使用這些位置:
CFLAGS="-I/usr/pkg/include" python3 -m pip install --upgrade Pillow
如果 Pillow 之前在沒有所需的先決條件的情況下構(gòu)建,則可能需要手動(dòng)清除 pip 緩存或使用--no-cache-dir
選項(xiàng)強(qiáng)制構(gòu)建沒有緩存的構(gòu)建,以使用新安裝的外部庫強(qiáng)制構(gòu)建。
環(huán)境變量:MAX_CONCURRENCY=n
. Pillow 可以使用多處理來構(gòu)建擴(kuò)展。設(shè)置MAX_CONCURRENCY
來設(shè)置要使用的 CPU 數(shù)量,或者可以通過使用設(shè)置 1 來禁用并行構(gòu)建。默認(rèn)情況下,它使用 4 個(gè) CPU,或者如果 4 個(gè)不可用,則盡可能多地使用。
構(gòu)建參數(shù):--disable-zlib
, --disable-jpeg
, --disable-tiff
, --disable-freetype
, --disable-lcms
, --disable-webp
, --disable-webpmux
, --disable-jpeg2000
, --disable-imagequant
, --disable-xcb
. 即使構(gòu)建機(jī)器上存在開發(fā)庫,也禁用構(gòu)建相應(yīng)的功能。
構(gòu)建參數(shù):--enable-zlib
, --enable-jpeg
, --enable-tiff
, --enable-freetype
, --enable-lcms
, --enable-webp
, --enable-webpmux
, --enable-jpeg2000
, --enable-imagequant
, --enable-xcb
. 要求構(gòu)建相應(yīng)的功能。如果未找到庫,構(gòu)建將引發(fā)異常。Webpmux(WebP
元數(shù)據(jù))依賴于 WebP 支持。Tcl 和 Tk 也必須一起使用。
構(gòu)建參數(shù): ?--vendor-raqm --vendor-fribidi
?這些參數(shù)用于編譯 libraqm 的修改版本和在運(yùn)行時(shí)動(dòng)態(tài)加載 libfribidi 的 shim。這些用于編譯標(biāo)準(zhǔn)的Pillow wheels。編譯 libraqm 需要符合 C99 的編譯器。
構(gòu)建參數(shù):--disable-platform-guessing
. 對(duì)于在環(huán)境變量(例如 Buildroot)中配置正確路徑的自動(dòng)構(gòu)建系統(tǒng),跳過所有依賴于平臺(tái)的猜測(cè)包括和庫目錄。
構(gòu)建參數(shù):--debug
. 向包含和庫搜索過程添加調(diào)試標(biāo)志,以將所有搜索和找到的路徑轉(zhuǎn)儲(chǔ)到標(biāo)準(zhǔn)輸出。
示例用法:
MAX_CONCURRENCY=1 python3 setup.py build_ext --enable-[feature] install
或使用 pip:
python3 -m pip install --upgrade Pillow --global-option="build_ext" --global-option="--enable-[feature]"
編譯 Pillow 部分需要 Xcode 命令行工具。這些工具是通過命令行運(yùn)行?xcode-select --install
?來安裝的。即使您安裝了完整的 Xcode 包,也需要命令行工具。在使用這些工具之前,可能需要運(yùn)行sudo xcodebuild -license
以接受許可證。
安裝外部庫的最簡(jiǎn)單方法是通過Homebrew。安裝 Homebrew 后,運(yùn)行:
brew install libtiff libjpeg webp little-cms2
要在 macOS 上安裝 libraqm,請(qǐng)使用 Homebrew 安裝其依賴項(xiàng):
brew install freetype harfbuzz fribidi
然后看depends/install_raqm_cmake.sh
安裝libraqm。
現(xiàn)在安裝 Pillow:
python3 -m pip install --upgrade pip python3 -m pip install --upgrade Pillow
或從未壓縮的源目錄中:
python3 setup.py install
我們建議您使用 PyPI 中的預(yù)制wheels。如果您想手動(dòng)編譯 Pillow,您可以使用
winbuild
CI 測(cè)試和開發(fā)目錄中的構(gòu)建腳本 。這些腳本需要 Visual Studio 2017 或更新版本和 NASM。
使用 MSYS2/MinGW 在 Windows 上構(gòu)建
要使用 MSYS2 構(gòu)建 Pillow,請(qǐng)確保您運(yùn)行MSYS2 MinGW 32 位或 MSYS2 MinGW 64 位控制臺(tái),而不是 直接運(yùn)行MSYS2。
下面的說明針對(duì)的64位版本,對(duì)于32位的替換的所有匹配mingw-w64-x86_64-
用mingw-w64-i686-
。
確保你安裝了 Python 和 GCC:
pacman -S \ mingw-w64-x86_64-gcc \ mingw-w64-x86_64-python3 \ mingw-w64-x86_64-python3-pip \ mingw-w64-x86_64-python3-setuptools
先決條件安裝在MSYS2 MinGW 64 位上:
pacman -S \ mingw-w64-x86_64-libjpeg-turbo \ mingw-w64-x86_64-zlib \ mingw-w64-x86_64-libtiff \ mingw-w64-x86_64-freetype \ mingw-w64-x86_64-lcms2 \ mingw-w64-x86_64-libwebp \ mingw-w64-x86_64-openjpeg2 \ mingw-w64-x86_64-libimagequant \ mingw-w64-x86_64-libraqm
現(xiàn)在安裝 Pillow:
python3 -m pip install --upgrade pip python3 -m pip install --upgrade Pillow
僅測(cè)試了 FreeBSD 10 和 11
確保安裝了 Python 的開發(fā)庫:
sudo pkg install python3
在FreeBSD 10 或 11上安裝必備安裝包:
sudo pkg install jpeg-turbo tiff webp lcms2 freetype2 openjpeg harfbuzz fribidi libxcb
然后看depends/install_raqm_cmake.sh
安裝libraqm。
如果您沒有從源代碼構(gòu)建 Python,請(qǐng)確保安裝了 Python 的開發(fā)庫。
在 Debian 或 Ubuntu 中:
sudo apt-get install python3-dev python3-setuptools
在 Fedora 中,命令是:
sudo dnf install python3-devel redhat-rpm-config
在 Alpine 中,命令是:
sudo apk add python3-dev py3-setuptools
?
redhat-rpm-config
? 在Fedora 23 上是必須的,但更早的版本不需要。
Ubuntu 16.04 LTS - 20.04 LTS 安裝之前需要先安裝的包有:
sudo apt-get install libtiff5-dev libjpeg8-dev libopenjp2-7-dev zlib1g-dev \ libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python3-tk \ libharfbuzz-dev libfribidi-dev libxcb1-dev
然后看depends/install_raqm.sh
安裝libraqm。
在最近的Red Hat、CentOS或Fedora安裝之前需要先安裝的包有:
sudo dnf install libtiff-devel libjpeg-devel openjpeg2-devel zlib-devel \ freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel \ harfbuzz-devel fribidi-devel libraqm-devel libimagequant-devel libxcb-devel
請(qǐng)注意,包管理器可能是 yum 或 DNF,具體取決于確切的發(fā)行版。
Alpine安裝之前需要先安裝的包有:
sudo apk add tiff-dev jpeg-dev openjpeg-dev zlib-dev freetype-dev lcms2-dev \ libwebp-dev tcl-dev tk-dev harfbuzz-dev fribidi-dev libimagequant-dev \ libxcb-dev libpng-dev
已為 Termux 環(huán)境中的編譯添加了基本的 Android 支持。可以通過以下方式安裝依賴項(xiàng):
pkg install -y python ndk-sysroot clang make \ libjpeg-turbo
這已在 x86 上 ChromeOS 上的 Termux 應(yīng)用程序中進(jìn)行了測(cè)試。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: