python setup.py install
PyPIパッケージの実行中に誰かがこの警告に遭遇しますか?
install_requires
パッケージに必要なものを定義します。多くのPyPIパッケージにはこのオプションがあります。「不明な配布オプション」になるにはどうすればよいですか?
python setup.py install
PyPIパッケージの実行中に誰かがこの警告に遭遇しますか?
install_requires
パッケージに必要なものを定義します。多くのPyPIパッケージにはこのオプションがあります。「不明な配布オプション」になるにはどうすればよいですか?
回答:
python setup.py
install_requiresをサポートしないdistutilsを使用します。setuptoolsは、(その後継)を配布し、pip(どちらかを使用)も配布します。しかし、実際にはそれらを使用する必要があります。easy_install
つまり、コマンドまたはを介してsetuptoolsを呼び出しますpip install
。
別の方法は、setup.pyのsetuptoolsからセットアップをインポートすることですが、これは標準ではなく、パッケージを使用するすべての人がsetuptoolsをインストールする必要があります。
pip
、を使用したいのですが、どうsetup.py
すればファイルを実行できますか?
python setup.py sdist
してインストールできますpip install resulting_package.tar.gz
。また、使用することができpip install -e
、ソースから直接インストールすることが、私はいつもパッケージからか...直接リポジトリからインストールすることが好ましい
pip install pendulum==1.4.4
。実行pip install setuptools --upgrade
するとエラーがクリアされました。
これは私のグーグル検索の最初の結果でしたが、答えがありませんでした。setuptoolsをアップグレードすると問題が解決することがわかりました(そして適切に測定するためにpipを使用しています)
pip install --upgrade pip
pip install --upgrade setuptools
これが次の人がこのリンクを見つけるのに役立つことを願っています!
pip3 install neovim-remote
ます。)
注意!注意!不完全な答えです。Pythonユニバースのパッケージングの状態に関する「最新のメモ」を入手するには、このかなり詳細なエッセイを読んでください。
ansibleをビルド/インストールしようとしたときに、この問題に遭遇しました。問題は、distutilsが実際にinstall_requiresをサポートしていないことです。Setuptools は distutilsをオンザフライでモンキーパッチする必要がありますが、そうではありません。おそらくdistutilsがコアPythonプロジェクトであるのに対し、setuptoolsの最後のリリースは2009年から0.6c11であるためです。
したがって、setuptools-0.6c11-py2.7.eggを手動でインストールした後でも、setup.pyを実行するとdistutils dist.pyのみが取得され、site-packages / setuptools /からは取得されません。
また、setuptoolsのドキュメントには、distutilsではなくez_setupの使用に関するヒントが記載されています。
ただし、setuptools自体は最近のディストリビューションによって提供されており、setup()のフレーバーはinstall_requiresをサポートしています。
setuptools
とdistribute
プロジェクトはマージを再開している最中ですが、まだ完了していません(このエッセイはすぐに更新します。その変化)。」2019年の現時点での状況を誰かが知っていますか?Python 2.7のサポート終了日が近づいているため、多くのPythonパッケージが更新と再パッケージ化の過程にあります。
私はMacでPython 2.7.11を使用しています。私は、非常にシンプルでわかりやすいプロジェクトを作成することを楽しんでいます。私の唯一の要件は、を実行python setup.py install
してsetup.py
、理想的にはdistutilsからsetupコマンドを使用できることです。文字通り、setup()
私がここで注意していること以外に、kwargs以外のインポートやコードはありません。
setup.py
ファイルのインポートが次の場合にエラーが発生します。
from distutils.core import setup
これを使用すると、次のような警告が表示されます
/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py:267:UserWarning:Unknown distribution option: 'entry_points' warnings.warn(メッセージ)
インポートを次のように変更した場合(それ以外は何も変更しない場合):
from distutils.core import setup
import setuptools # noqa
警告は消えます。
私はを使用していないことに注意してください。インポートするsetuptools
だけで動作が変更され、警告が出力されなくなります。私にとって、これは本当に不可解な違いの原因です。私が使用しているプロジェクトによっては警告が出されたり、出されなかったりするものがあります。
明らかに、なんらかの形のサルパッチングが行われており、そのインポートが行われたかどうかに影響されます。これはおそらく、この問題を調査しているすべての人の状況ではありませんが、私が働いている狭い環境では、これが私が探していた答えです。
これは、distutilsがsetuptoolsをモンキーパッチすべきであり、Ansibleをインストールするときに問題があったという他の(コミュニティ)コメントと一致しています。Ansibleは、過去にsetuptoolsを使用せずにインストールを許可しようとしたため、それを繰り返しました。
https://github.com/ansible/ansible/blob/devel/setup.py
多くのものが空中にあります...しかし、単純なプロジェクトの簡単な答えを探しているのであれば、おそらくsetuptoolsをインポートするだけです。
import setuptools
と、python 3.5のubuntu 16.04で問題が奇跡的に解決されました。
これはdistutilsからの警告であり、setuptoolsがインストールされていないことを示しています。http://pypi.python.org/pypi/setuptoolsからインストールすると、警告が削除されます。
sudo apt-get install python-dev # for python2.x installs
sudo apt-get install python3-dev # for python3.x installs
不足しているヘッダーをインストールします。それは私の問題を解決しました
結論として:
distutils
サポートされていないinstall_requires
かentry_points
、setuptools
ありません。
変更from distutils.core import setup
でsetup.pyにfrom setuptools import setup
したり、リファクタリングsetup.pyを使用することにしかdistutils
備わっています。
私は実現していなかったので、私はここに来たentry_points
だけだったsetuptools
機能。
ここに私のように変換setuptools
したい場合distutils
:
install_requires
から削除し、requirements.txtを使用してpip
entry_points
し、依存しているモジュールをリファクタリングして、シバンとエントリポイントを持つ完全なスクリプトにします。scripts
entry_points
私の知る限り、これはsetuptoolsのバグであり、標準ライブラリの基本クラスを呼び出す前にsetuptools固有のオプションを削除していない:https : //bitbucket.org/pypa/setuptools/issue/29 / avoid-userwarnings-emitted-when-calling
あなたは無条件を持っている場合はimport setuptools
、あなたにsetup.py
(あなたがすべきsetuptoolsの特定のオプションを使用している場合)、その後、スクリプトは失敗とされていない事実は、ImportError
setuptoolsのが正しくインストールされていることを示しています。
次のようにして警告を止めることができます。
python -W ignore::UserWarning:distutils.dist setup.py <any-other-args>
setuptoolsがインストールされていない場合に完全に失敗する無条件のインポートを使用する場合にのみ、これを実行してください:)
(私は、マージ後のsetuptoolsリポジトリからのチェックアウトでこれと同じ動作を見ています。これが、システム構成の問題ではなく、setuptoolsのバグであると確信している理由です。マージ前の配布でも同じ問題が発生すると思います)