web-dev-qa-db-de.com

Warum sagt python setup.py auf Travis CI einen ungültigen Befehl 'bdist_wheel'?

Mein Python -Paket hat einen setup.py, der lokal auf Ubuntu Trusty und auf einem frischen Vagrant Ubuntu Trusty VM funktioniert, wenn ich es wie folgt bereitstelle:

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

Aber wenn ich dasselbe auf einer Trusty Beta-VM von Travis CI mache:

- 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

Ich bekomme:

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'

Dies Warum kann ich in Python kein Rad erstellen? ist verwandt, aber beachte, dass ich ein Rad installiere und setuptools aktualisiere.

158
nokome

Dieses Problem ist auf Folgendes zurückzuführen:

  • eine alte Version von pip (6.1.1) wird für Python 2.7 installiert
  • mehrere Kopien von Python 2.7, die auf dem Trusty Beta-Image installiert sind
  • ein anderer Speicherort für Python 2.7, der für Sudo verwendet wird

Es ist alles etwas kompliziert und wird hier besser erklärt https://github.com/travis-ci/travis-ci/issues/4989 .

Meine Lösung bestand darin, mit dem Benutzer travis anstelle von Sudo zu installieren:

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

Musste das wheel -Paket installieren. Alles war auf dem neuesten Stand, aber es gab immer noch den Fehler.

pip install wheel

dann

python setup.py bdist_wheel 

Arbeitete ohne Probleme.

238
frmdstryr
pip install wheel

hat für mich gearbeitet, aber du kannst das auch hinzufügen

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

zu setup.py und speichere dir einen pip install Befehl

32

Wenn Sie bereits alle erforderlichen Module installiert haben, müssen Sie wahrscheinlich das setuptools -Modul in Ihre setup.py -Datei importieren. Fügen Sie einfach die folgende Zeile am Anfang der setup.py -Datei hinzu.

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

Dies wird auch in der Dokumentation des Rads erwähnt. https://wheel.readthedocs.io/en/stable/#usage

25
Kasrâmvd

Dieser Fehler ist seltsam, da viele Antworten vorgeschlagen und gemischte Lösungen erhalten wurden. Ich habe es versucht, füge sie hinzu. Erst als ich pip install --upgrade pip hinzufügte, wurde der Fehler für mich endgültig behoben. Aber ich habe keine Zeit zu isolieren, was was ist, also ist dies nur zu Ihrer Information.

21
typelogic

Ich hatte bereits wheel installiert, also habe ich versucht, es zu deinstallieren und neu zu installieren, und es hat das Problem behoben:

pip uninstall wheel
pip install wheel

Seltsam...

8
Jerther

Mein Fix war apt install python3-dev

6
7029279

Versuchen Sie, die Datei setup.py zu ändern, indem Sie setup aus setuptools anstelle von distutils.core importieren

2
Shubham Laddha

Nicht mit Travis CI verwandt, aber ich hatte ein ähnliches Problem beim Versuch, jupiter auf meinem Mac OSX 10.8.5 zu installieren, und keine der anderen Antworten war hilfreich. Das Problem wurde durch das Erstellen des "Rads" für das Paket "pyzmq" verursacht, wobei Fehlermeldungen Hunderte von Seiten füllten.

Die Lösung, die ich gefunden habe, bestand darin, eine ältere Version dieses Pakets direkt zu installieren:

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

Danach verlief die Installation von jupyter fehlerfrei.

0
Dmitri Zaitsev