2013-03-31 4 views
16

build_extオプションをpipインストールに渡して、パッケージに含まれる拡張機能をコンパイルする方法を変更する方法はありますか? (はい、ソースをダウンロードしてカスタムsetup.cfgでビルド/インストールすることができますが、setup.cfgで指定できるオプションをpipに渡すことができるかどうか不思議です)pip installにpip_extオプションを渡す

答えて

2

私は検索しましたpipにそのようなオプションがあり、見つからなかった(sourceも検索しました)。

easy_install/setuptoolsにもこのようなオプションはありません。

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

私が見る唯一の解決策は、古い学校の方法です。

8

ホームディレクトリに.pydistutils.cfgファイルを作成し、カスタムsetup.cfgのようにビルドオプションを上書きできますが、パッケージを最初に解凍する必要はありません。

したがって、たとえば、あなたが変えるためにこのような何かを書くことができます& libの検索パスを含める:

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

おかしい、私は完全に私は一度これを知っていた忘れてた後、私自身の答えをGoogleで検索しました: - 最初build_ext、その後install - このようなしかし、これはPIPが2つのコマンドを実行することになるだろう。 – toriningen

9

それはpip --global-option=build_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" 

build_extが本当にピップコマンドではなく、これは、本当にthis answerに触発pip --global-optionの乱用であり、グローバルピップオプション

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

優れています。魅力的な作品。 –