99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Pillow 使用源代碼構(gòu)建

2021-07-06 17:39 更新

從PyPI下載并提取源代碼壓縮文件。

外部資源庫

您無需安裝所有支持的外部資源庫即可使用 Pillow 的基本功能。默認情況下需要Zlib和libjpeg。

我們的Docker 鏡像存儲庫中有 Dockerfiles用于安裝某些操作系統(tǒng)的依賴項。

Pillow 的許多功能都需要外部庫:

  • ?libjpeg ?提供jpeg功能。
    • Pillow 已經(jīng)通過libjpeg版本 6b , ?8 ?, 9-9d 和libjpeg-turbo版本 8 的測試
    • 從 Pillow 3.0.0開始,默認情況下需要libjpeg,但可以使用? --disable-jpeg?參數(shù)禁用 。
  • ?zlib ?提供對壓縮PNG的訪問
    • 從 Pillow 3.0.0開始,默認情況下需要zlib,但可以使用 ?--disable-zlib ?參數(shù)禁用。
  • ?libtiff ?提供壓縮的TIFF功能
    • Pillow 已經(jīng)過libtiff版本 3.x 和 4.0-4.1的測試。
  • ?libfreetype ?提供與類型相關(guān)的服務
  • ?littlecms? 提供顏色管理
    • Pillow版本2.2.1及以下使用liblcms1,Pillow2.3.0及以上使用liblcms2。 使用1.19 和 2.7-2.11 進行測試。
  • ?libwebp ?提供WebP格式。
    • Pillow 已經(jīng)過 0.1.3版本的測試, 它不能讀取透明的WebP文件。0.3.0 及以上版本支持透明度。
  • ?tcl/tk ?提供對tkinter位圖和照片圖像的支持。
  • ?openjpeg ?提供jpeg 2000功能。
    • Pillow 已經(jīng)用 openjpeg 2.0.02.1.0、2.3.12.4.0進行了測試。
    • Pillow 不能支持較早的 1.5 與Debian Jessie一起發(fā)行的系列。
  • ?libimagequant ?提供改進的顏色量化
    • Pillow 已通過libimagequant 2.6-2.15.1測試
    • Libimagequant 獲得 GPLv3 許可,比 Pillow 許可更嚴格,因此我們不會分發(fā)啟用了 libimagequant 支持的二進制文件。
  • ?libraqm ?提供復雜的文本布局支持。
    • libraqm 提供雙向文本支持(使用 FriBiDi)、整形(使用 HarfBuzz)和適當?shù)哪_本項。因此,Raqm 可以支持 Unicode 涵蓋的大多數(shù)書寫系統(tǒng)。
    • libraqm依賴于以下庫:freetype、harfbuzz、fribidi,如果您的系統(tǒng)中沒有可用的軟件包,請確保在安裝libraqm之前安裝它們。
    • 沒有l(wèi)ibraqm,不支持設置文本方向或字體功能。
    • libraqm動態(tài)加載在bendle 5.0.0及更高版本中,因此如果安裝了所有庫,則支持可用。Windows支持:Raqm不包括在預構(gòu)建的輪子中
  • ?libxcb ?提供Grab Screenx11支持。

安裝先決條件后,運行:

python3 -m pip install --upgrade pip
python3 -m pip install --upgrade Pillow

如果先決條件安裝在您機器的標準庫位置(例如/usr/usr/local),則不需要額外的配置。如果它們安裝在非標準位置,您可能需要通過編輯setup.py或 setup.cfg或通過在命令行上添加環(huán)境變量來配置 ?setuptools ?以使用這些位置:

CFLAGS="-I/usr/pkg/include" python3 -m pip install --upgrade Pillow

如果 Pillow 之前在沒有所需的先決條件的情況下構(gòu)建,則可能需要手動清除 pip 緩存或使用--no-cache-dir選項強制構(gòu)建沒有緩存的構(gòu)建,以使用新安裝的外部庫強制構(gòu)建。

構(gòu)建選項

  • 環(huán)境變量:MAX_CONCURRENCY=n. Pillow 可以使用多處理來構(gòu)建擴展。設置MAX_CONCURRENCY 來設置要使用的 CPU 數(shù)量,或者可以通過使用設置 1 來禁用并行構(gòu)建。默認情況下,它使用 4 個 CPU,或者如果 4 個不可用,則盡可能多地使用。

  • 構(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)建機器上存在開發(fā)庫,也禁用構(gòu)建相應的功能。

  • 構(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)建相應的功能。如果未找到庫,構(gòu)建將引發(fā)異常。Webpmux(WebP 元數(shù)據(jù))依賴于 WebP 支持。Tcl 和 Tk 也必須一起使用。

  • 構(gòu)建參數(shù): ?--vendor-raqm --vendor-fribidi?這些參數(shù)用于編譯 libraqm 的修改版本和在運行時動態(tài)加載 libfribidi 的 shim。這些用于編譯標準的Pillow wheels。編譯 libraqm 需要符合 C99 的編譯器。

  • 構(gòu)建參數(shù):--disable-platform-guessing. 對于在環(huán)境變量(例如 Buildroot)中配置正確路徑的自動構(gòu)建系統(tǒng),跳過所有依賴于平臺的猜測包括和庫目錄。

  • 構(gòu)建參數(shù):--debug. 向包含和庫搜索過程添加調(diào)試標志,以將所有搜索和找到的路徑轉(zhuǎ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]"

在 macOS 上構(gòu)建

編譯 Pillow 部分需要 Xcode 命令行工具。這些工具是通過命令行運行?xcode-select --install?來安裝的。即使您安裝了完整的 Xcode 包,也需要命令行工具。在使用這些工具之前,可能需要運行sudo xcodebuild -license以接受許可證。

安裝外部庫的最簡單方法是通過Homebrew。安裝 Homebrew 后,運行:

brew install libtiff libjpeg webp little-cms2Copy to clipboard

要在 macOS 上安裝 libraqm,請使用 Homebrew 安裝其依賴項:

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

在 Windows 上構(gòu)建

 我們建議您使用 PyPI 中的預制wheels。如果您想手動編譯 Pillow,您可以使用winbuildCI 測試和開發(fā)目錄中的構(gòu)建腳本 。這些腳本需要 Visual Studio 2017 或更新版本和 NASM。

使用 MSYS2/MinGW 在 Windows 上構(gòu)建

要使用 MSYS2 構(gòu)建 Pillow,請確保您運行MSYS2 MinGW 32 位或 MSYS2 MinGW 64 位控制臺,而不是 直接運行MSYS2

下面的說明針對的64位版本,對于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

在 FreeBSD 上構(gòu)建

僅測試了 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。

在 Linux 上構(gòu)建

如果您沒有從源代碼構(gòu)建 Python,請確保安裝了 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、CentOSFedora安裝之前需要先安裝的包有:

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

請注意,包管理器可能是 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

在 Android 上構(gòu)建

已為 Termux 環(huán)境中的編譯添加了基本的 Android 支持??梢酝ㄟ^以下方式安裝依賴項:

pkg install -y python ndk-sysroot clang make \
    libjpeg-turbo

這已在 x86 上 ChromeOS 上的 Termux 應用程序中進行了測試。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號