127 votes

pypi UserWarning: option de distribution inconnue: 'install_requires'

Tout corps rencontre cet avertissement lorsqu’il exécute "Python setup.py" d’un paquet pypi?

'install_requires' définit les besoins de ce paquet. Beaucoup de paquets Pypi ont cette option. Comment peut-il s'agir d'une "option de distribution inconnue"?

99voto

Sebastian Blask Points 1272

python setup.py utilise distutils qui ne supporte pas install_requires. setuptools distribue également (son successeur) et pip (qui utilise l'un ou l'autre) le fait. Mais vous devez réellement les utiliser. Par exemple, appelez setuptools via la commande easy_install ou pip install .

Une autre méthode consiste à importer la configuration à partir de setuptools dans votre fichier setup.py, mais cela n’est pas standard et oblige tous ceux qui souhaitent utiliser votre paquet doivent avoir installé setuptools.

17voto

PAStheLoD Points 441

ACHTUNG! ACHTUNG! Imparfait réponse à l'avance. Pour obtenir la version la plus récente mémo" sur l'état de l'emballage dans le Python univers, lire ce assez détaillé de l'essai.

J'ai juste rencontré ce problème lorsque vous tentez de créer/installer ansible. Le problème semble être que distutils vraiment ne prend pas en charge install_requires. Setuptools devrait singe-patch distutils à la volée, mais il ne le fait pas, probablement parce que la dernière version de setuptools est de 0.6c11 à partir de 2009, alors que distutils est un core Python projet.

Ainsi, même après l'installation manuelle de la setuptools-0.6c11-py2.7.oeuf course setup.py ne capte que la distutils dist.py et non pas celui du site-packages/setuptools/.

Aussi la setuptools documentation des conseils à l'aide de ez_setup et pas distutils.

Cependant, setuptools est lui-même fourni par distribuer de nos jours, et que la saveur de setup() prend en charge install_requires.

8voto

Fredrik Håård Points 780

Ceci est un avertissement de distutils et indique que vous n'avez pas installé setuptools. L'installer à partir de http://pypi.python.org/pypi/setuptools supprimera l'avertissement.

2voto

ncoghlan Points 10779

Aussi loin que je peux dire, c'est un bug dans setuptools où il n'est pas de retirer le setuptools des options spécifiques, avant d'appeler à la classe de base de la bibliothèque standard: https://bitbucket.org/pypa/setuptools/issue/29/avoid-userwarnings-emitted-when-calling

Si vous avez une inconditionnelle import setuptools votre setup.py (comme vous devriez, si à l'aide de la setuptools options spécifiques), alors le fait que le script n'est pas faute de quoi ImportError indique que setuptools est correctement installé.

Vous pouvez le silence le message d'avertissement comme suit:

python -W ignore::UserWarning:distutils.dist setup.py <any-other-args>

Seulement le faire si vous utilisez l'inconditionnel à l'importation échouera complètement si setuptools n'est pas installé :)

(Je vais voir ce même comportement dans une caisse à partir de la suite de la fusion setuptools repo, c'est pourquoi je suis convaincu que c'est un setuptools bug plutôt que d'un système de config problème. J'attends de pré-fusion distribuer aurait le même problème)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X