2013-03-31 17 views
16

build_ext seçeneklerini bir pakette bulunan bir uzantının nasıl derlendiğini değiştirmek için pip yüklemesine geçmek için bir yol var mı? (Evet, bir kullanıcının kaynağı indirebildiğini ve özel bir setup.cfg ile kurulum/yükleme yapılabileceğini biliyorum, ancak setup.cfg içinde doğrudan pip aracılığıyla belirtilebilen seçeneklerin geçirilip geçirilmeyeceğini merak ediyorum.)pip kurulumu kurmak için build_ext seçenekleri

cevap

2

Aradığım için arama yaptım Bu seçenek pip içinde bulundu ve hiçbiri bulunamadı (source da arandı).

easy_install/setuptools da böyle bir seçenek olmadığını düşünüyorum.

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

gördüğüm tek çözüm, eski okul yoludur.

8

Ev dizininize .pydistutils.cfg dosyasını yaratabilirsiniz ve özel setup.cfg ile yapabileceğiniz gibi, ancak önce paketi açmaya gerek kalmadan yapabilecekleri oluşturma seçeneklerini geçersiz kılabilirsiniz. Bu pip --global-option=build_ext kullanarak mümkündür

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

Komik: - İlk build_ext ve sonra install - Böyle Ama bu pip iki komutu çalıştırmanız hale getirecektir. – toriningen

9

:

Yani, örneğin, değiştirmek için böyle bir şey yazabilirsiniz & lib arama yolunu içerir. build_ext gerçekten pip komut olup olarak,

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" 

Bu gerçekten pip --global-option kötüye kullanmasıdır, this answer esinlenerek: Bu örnek için

PNG ve JPEG desteği ile Pillow ve başka hiçbir harici kütüphaneleri için requirements.txt olduğunu global pip seçeneği. Ben tamamen keresinde bunu biliyordu unutmadan sonra kendi cevabını kadar google'dan

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 
+0

Mükemmel. Cazibe gibi çalışır. –

İlgili konular