web-dev-qa-db-fra.com

Pourquoi python setup.py dit-il une commande non valide 'bdist_wheel' sur Travis CI?

Mon paquet Python a un setup.py qui se construit correctement localement sur Ubuntu Trusty et sur un nouveau Vagrant Ubuntu Trusty VM lorsque je le provisionne comme ceci:

Sudo apt-get install python python-dev --force-yes --assume-yes --fix-broken
curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | Sudo python2.7
Sudo -H pip install setuptools wheel virtualenv --upgrade

Mais lorsque je fais la même chose sur une VM Beta Travis CI Trusty:

- Sudo apt-get install python python-dev --force-yes --assume-yes --fix-broken
- curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | Sudo python2.7
- Sudo -H pip install setuptools wheel virtualenv --upgrade

Je reçois:

python2.7 setup.py bdist_wheel
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: setup.py --help [cmd1 cmd2 ...]
   or: setup.py --help-commands
   or: setup.py cmd --help
error: invalid command 'bdist_wheel'

This Pourquoi ne puis-je pas créer une roue en python? est lié mais notez que j'installe wheel et que je mets à jour setuptools.

158
nokome

Ce problème est dû à:

  • une ancienne version de pip (6.1.1) en cours d'installation pour Python 2.7
  • plusieurs copies de Python 2.7 installé sur l'image Trusty Beta
  • un emplacement différent pour Python 2.7 utilisé pour Sudo

Tout est un peu compliqué et mieux expliqué ici https://github.com/travis-ci/travis-ci/issues/4989 .

Ma solution était d'installer avec l'utilisateur travis au lieu de Sudo:

- pip2.7 install --upgrade --user travis pip setuptools wheel virtualenv
37
nokome

A dû installer le paquet wheel. Tout était à jour mais donnait toujours l'erreur.

pip install wheel

ensuite

python setup.py bdist_wheel 

Travaillé sans problèmes.

238
frmdstryr
pip install wheel

a travaillé pour moi, mais vous pouvez aussi ajouter ceci

setup(
    ...
    setup_requires=['wheel']
)

sur setup.py et enregistrez-vous une commande pip install

32
Nathaniel Gentile

Si tous les modules requis sont déjà installés, vous devez probablement importer le module setuptools dans votre fichier setup.py. Il suffit donc d’ajouter la ligne suivante au début du fichier setup.py.

import setuptools
from distutils.core import setup
# other imports and setups

Ceci est également mentionné dans la documentation de wheel. https://wheel.readthedocs.io/fr/stable/#usage

25
Kasrâmvd

Cette erreur est étrange car beaucoup de réponses proposées et de solutions mixtes. Je les ai essayés, ajoutez-les. C’est seulement quand j’ai ajouté pip install --upgrade pip que l’erreur a finalement été supprimée. Mais je n'ai pas le temps d'isoler lequel est lequel, alors c'est juste pour le moment.

21
typelogic

J'avais déjà installé wheel alors j'ai essayé de désinstaller et de réinstaller, et le problème a été résolu:

pip uninstall wheel
pip install wheel

Bizarre...

8
Jerther

Mon correctif était apt install python3-dev

6
7029279

Essayez de modifier le fichier setup.py en important le programme d'installation depuis setuptools au lieu de distutils.core.

2
Shubham Laddha

Pas lié à Travis CI mais j'ai rencontré un problème similaire en essayant d'installer jupiter sur mon Mac OSX 10.8.5, et aucune des autres réponses n'a été utile. Le problème était dû à la construction de la "roue" du paquetage appelé pyzmq, avec des messages d'erreur remplissant des centaines de pages.

La solution que j'ai trouvée consistait à installer directement une version plus ancienne de ce paquet:

python -m pip install pyzmq==17 --user

Après cela, l’installation de jupyter a réussi sans erreur.

0
Dmitri Zaitsev