Python 将build_ext选项传递给pip安装

Python 将build_ext选项传递给pip安装,python,build,installation,pip,Python,Build,Installation,Pip,是否有办法将build\u ext选项传递给pip install,以改变包中包含的扩展的编译方式?(是的,我知道可以下载源代码并使用自定义的setup.cfg构建/安装,但我很好奇是否可以通过pip直接传递setup.cfg中指定的选项。)我在pip中搜索了此类选项,但没有找到(也搜索了) 我认为在中国也没有这样的选择 我看到的唯一解决办法是老派的方式: download/unpack/setup.py build\u ext[options]/setup.py install 您可以在主目录

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

我在
pip
中搜索了此类选项,但没有找到(也搜索了)

我认为在中国也没有这样的选择

我看到的唯一解决办法是老派的方式:


download/unpack/setup.py build\u ext[options]/setup.py install

您可以在主目录中创建
.pydistutils.cfg
文件,并像使用自定义
setup.cfg
一样覆盖构建选项,但无需先解包

例如,您可以编写如下内容来更改include&lib搜索路径:

[build_ext]
include_dirs=/usr/local/include
library_dirs=/usr/local/lib64
rpath=/usr/local/lib64

可以使用
pip--global option=build\u ext

例如,对于支持PNG和JPEG且没有其他外部库的枕头,这是
requirements.txt

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
的滥用,其灵感来自于
build\u ext
是一个pip命令,而不是一个真正的全局pip选项。但这将使pip执行两个命令—首先是
build\u 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

杰出的像charm.pip build\u ext这样的功能现在对我不起作用。有趣的是,我完全忘记了我曾经知道这一点,然后用谷歌搜索了我自己的答案。