python setup.py install
PyPI パッケージの実行時にこの警告に遭遇した人はいますか?
install_requires
パッケージに必要なものを定義します。多くの PyPI パッケージにはこのオプションがあります。どのようにして「不明な配布オプション」になるのでしょうか?
python setup.py
install_requiresをサポートしないdistutilsを使用します。setuptoolsは、(後継)を配布し、pip(どちらかを使用)も配布します。しかし、実際にはそれらを使用する必要があります。easy_install
つまり、コマンドまたはを使用してsetuptoolsを呼び出しますpip install
。
もう1つの方法は、setuptoolsからsetup.pyにセットアップをインポートすることですが、これは標準ではなく、パッケージを使用したいすべての人がsetuptoolsをインストールする必要があります。
注意!注意!先の不完全な答え。Python ユニバースにおけるパッケージングの状態に関する「最新のメモ」を取得するには、このかなり詳細なエッセイをお読みください。
ansibleをビルド/インストールしようとしたときに、この問題に遭遇しました。問題は、distutils が実際にはinstall_requiresをサポートしていないことにあるようです。setuptoolsはdistutils にオンザフライでモンキー パッチを適用する必要がありますが、そうではありません。おそらく、setuptools の最後のリリースが 2009 年の 0.6c11 であるのに対し、distutils はコア Python プロジェクトであるためです。
そのため、setuptools-0.6c11-py2.7.egg を手動でインストールした後でも、setup.py を実行すると distutils dist.py のみが取得され、site-packages/setuptools/ からのものは取得されません。
また、setuptools のドキュメントは、distutils ではなくez_setupを使用することを示唆しています。
ただし、setuptools 自体は現在ディストリビューションによって提供されており、setup() のフレーバーは install_requires をサポートしています。
これは distutils からの警告であり、setuptools がインストールされていないことを示しています。http://pypi.python.org/pypi/setuptoolsからインストールすると、警告が削除されます。
私が知る限り、これは標準ライブラリの基本クラスを呼び出す前に setuptools 固有のオプションを削除していない setuptools のバグです: https://bitbucket.org/pypa/setuptools/issue/29 /void-userwarnings-emitted-when-calling
import setuptools
(setuptools 固有のオプションを使用する場合のように)に無条件があるsetup.py
場合、スクリプトが失敗しないという事実はImportError
、setuptools が適切にインストールされていることを示します。
次のように警告を消すことができます。
python -W ignore::UserWarning:distutils.dist setup.py <any-other-args>
setuptools がインストールされていない場合に完全に失敗する無条件のインポートを使用する場合にのみ、これを行ってください:)
(マージ後の setuptools リポジトリからのチェックアウトでも同じ動作が見られます。そのため、システム構成の問題ではなく setuptools のバグであると確信しています。マージ前の配布にも同じ問題があると思います)