python - 将 build_ext 选项传递给 pip install

有没有办法将 build_ext 选项传递给 pip install 以改变包中包含的扩展的编译方式? (是的,我知道可以下载源代码并使用自定义 setup.cfg 构建/安装,但我很好奇是否可以传递可以在 setup 中指定的选项.cfg 直接通过 pip。)

最佳答案

可以使用 pip --global-option=build_ext

例如,这是 Pillow 的 requirements.txt,支持 PNG 和 JPEG,没有其他外部库:

pillow \
        --global-option="build_ext" \
        --global-option="--enable-zlib" \
        --global-option="--enable-jpeg" \
        --global-option="--disable-tiff" \
        --global-option="--disable-freetype" \
        --global-option="--disable-tcl" \
        --global-option="--disable-tk" \ 
        --global-option="--disable-lcms" \
        --global-option="--disable-webp" \
        --global-option="--disable-webpmux" \
        --global-option="--disable-jpeg2000"

这确实是对 pip --global-option 的滥用,灵感来自 this answer ,因为 build_ext 是一个 pip 命令,而不是真正的全局 pip 选项。但这会使 pip 执行两个命令——首先是 build_ext,然后是 install——就像这样:

pip \
    build_ext \
        --enable-zlib --enable-jpeg \
        --disable-tiff --disable-freetype --disable-tcl --disable-tk \
        --disable-lcms --disable-webp --disable-webpmux --disable-jpeg2000 \
    install pillow

https://stackoverflow.com/questions/15725869/

相关文章:

build - Jenkins 工作中的工作继承

build - 找不到工件的不可解析父 POM 和 'parent.relativePath' 点在

Maven - 使用依赖构建

build - 在 Android Studio 中禁用 Gradle 自动生成

c++ - 是否有针对不同操作系统检查开源应用程序的构建农场?

java - 使用 gradle 进行简单的 protobuf 编译

macos - pkg-config 和 OSX 10.8,正确的 PKG_CONFIG_PATH?

build - 使用 'aggregate' 后跟 'dependsOn' 是否与相同的模块冗余?

maven - 从 Maven 运行 Gradle

ios - 深圳ios build报错