pypa mac hhttps bootstrap python build install pip

python - mac - Pasa las opciones de build_ext para instalar pip



install pip windows 10 (3)

Busqué esa opción en pip y no encontré ninguna (también busqué en la source ).

No creo que no haya tal opción en easy_install/setuptools también.

La única solución que veo es a la antigua usanza:

download / unpack / setup.py build_ext [options] / setup.py install .

¿Hay alguna manera de pasar build_ext opciones de build_ext para instalar pip para alterar cómo se compila una extensión incluida en un paquete? (Sí, sé que se puede descargar la fuente y compilar / instalar con un setup.cfg personalizado, pero tengo curiosidad por saber si es posible pasar opciones que pueden especificarse en setup.cfg directamente a través de pip).


Es posible usar pip --global-option=build_ext .

Por ejemplo, estos son los requirements.txt para Pillow con soporte PNG y JPEG y no otras bibliotecas externas:

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"

Esto es realmente un abuso de pip --global-option , inspirado en esta respuesta , ya que build_ext es un comando pip y no es realmente una opción de pip global. Pero esto haría que pip ejecutara dos comandos, primero build_ext y luego install , como esto:

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


Puede crear el archivo .pydistutils.cfg en su directorio de inicio y anular las opciones de compilación como podría hacer con el setup.cfg personalizado, pero sin la necesidad de desempaquetar el paquete primero.

Entonces, por ejemplo, puede escribir algo como esto para modificar la ruta de búsqueda de inclusión y liberación:

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