- distutilsは
distutils.log
というモジュールでログの出力レベルを変えている。distutilsはsetup.pyから利用されるので、コマンドライン引数などはsetuptoolsに含まれるため、ユーザーが制御できない。しかし、このログレベルを変えるのは簡単ではないようだ - pipは
setup.py egg_info
をオプション引数なしで実行しており、この中でビルドが走り、問題があるとここで止まる。引数無しで実行しているため、ログレベルを変えられない。egg_infoっていかにもビルドとは違うことをしそうなものだが、ここで止まってしまうのはsetup.pyの書き方がまずいのかもしれない- 色々調べたら、cythonインストール問題で、build_extのfinalize_optionを無理やりいじったせいで、egg_infoでビルドが走ってしまってるのが原因だった。cython問題根深い・・・
- setup.py install -vvv ではinstallコマンド用の引数を渡すことはできる。しかし、実際には中でsetuptoolsがeasy_installコマンドを実行しており、ここに-vvvの引数(verbose=3)は渡されない。その為、やはりログレベルを変えられない。ちなみに、この引数はsetuptools内でパースしていて、
{'verbose': 3}
に変換する。ただし、3はint
- setup.cfgファイルにglobalという項目をつけると、setup.pyがここを読んで引数を足してくれる。しかし、
verbose = 3
を指定すると3
が内部では文字列として扱われ、結局if文に引っかからずログレベルを変えられない - setup.py -vvv installすると実はログレベルを変えられる。コマンド名の前に指定したオプションはglobal-optionと呼ばれ、setuptoolsの全てのコマンドに追加される。そのため、easy_installに対してもこの引数は渡されるので、ログレベルを変えられる。ちなみに、pipのglobal-optionはこれに対応するようだが、上述したとおりegg_infoにはこの引数は渡されない
More than 5 years have passed since last update.
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
List of users who liked
11