2014-10-30 12 views
127

Hier sind die Befehle, die ich leite:Warum kann ich kein Rad in Python erstellen?

$ python 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' 

$ pip --version 
pip 1.5.6 from /usr/local/lib/python3.4/site-packages (python 3.4) 

$ python -c "import setuptools; print(setuptools.__version__)" 
2.1 

$ python --version 
Python 3.4.1 

$ which python 
/usr/local/bin/python 

Auch ich bin

hier einen Mac mit homebrewed Python läuft mein setup.py-Skript: https://gist.github.com/cloudformdesign/4791c46fe7cd52eb61cd

ich absolut gehe verrückt - ich kann nicht herausfinden, warum das nicht funktionieren würde.

+1

Und Sie haben das "Rad" -Paket installiert, wie Thomas 'Antwort rät? –

Antwort

204

Installieren Sie das wheel package zuerst:

pip install wheel 

Die Dokumentation zu diesem Thema nicht allzu klar, aber „das Rad Projekt stellt einen bdist_wheel Befehl für Setuptools“ bedeutet eigentlich „das Rad Paket. .. ".

+1

Also spucke die Datei aus: nioblocks-1.01-cp34-cp34m-macosx_10_9_x86_64.whl - wird das mit jedem Betriebssystem funktionieren, oder muss ich noch etwas anderes tun, damit es funktioniert? (das "Paket" ist nur eine Reihe von Abhängigkeiten für pip, um jetzt zu installieren) – vitiral

+1

@GarrettLinux Ich würde es nicht wissen, es tut mir leid, aber ich würde Sie ermutigen, eine separate Frage dafür zu stellen;) –

+1

Ich habe auch dieses Problem behoben - das Hinzufügen einer Datei zur Datei setup.py gab es ein allgemeines Rad. Sehen Sie sich zum Beispiel den aktualisierten Code in meiner Frage an. – vitiral

119

Ich lief auch in die Fehlermeldung invalid command 'bdist_wheel'

Es stellt sich vielmehr die Paket setup.py verwendet distutils aus als Setuptools. Das Ändern wie folgt ermöglichte mir, das Rad zu bauen.

#from distutils.core import setup 
from setuptools import setup 
+1

Yup, hatte ich dieses Problem auf einmal auch! Sehr wichtig, und die Fehlermeldung ist schlecht. – vitiral

+0

@geographika ja das ist Befehl auch die Dokumentation auf https://docs.python.org/2/distutils/setupskript.html würde die Probleme replizieren, die Sie sehen, da es Disutils verwendet – JamesD

+1

Kann auch erforderlich sein, um 'von distutils zu ändern. Core Import Extension, Command' to 'von setuptools importieren Extension, Command' zumindest für das Paket, mit dem ich gearbeitet habe. – eseglem

30

Aktualisieren Sie auch Ihre Setup-Tools.

pip install setuptools --upgrade 

Wenn das zu fehlschlägt, können Sie mit zusätzlichen --force Flagge versuchen.

+2

Das war das Problem für mich (auf Mac) – wisbucky

+0

das war das Problem für mich (debian) – nuttynibbles

+1

meine setsetools wurde entfernt, oder etwas stimmte nicht. Also musste ich folgendes machen: pip install setuptools --upgrade --force – nycynik

8

Ich lief auch plötzlich, nachdem es zuvor funktioniert hatte, und es war, weil ich in einem virtualenv war, und wheel wurde nicht in der virtualenv installiert.

0

Ich habe das gleiche Problem. Aber es scheint, dass ich Sudo vor dem Commend nicht benutzt habe. Nach der Verwendung der Commend mit Administratorrechte. es funktionierte.

0

Ich habe alles versucht, sagte hier ohne Glück, aber einen Workaround gefunden. diesen Befehl nach dem Ausführen (und nicht an): bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

Gehen Sie in das temporäre Verzeichnis das gemacht Werkzeug (in der Ausgabe des letzten Kommandos gegeben), dann python setup.py bdist_wheel auszuführen. Die Datei .whl befindet sich im Ordner dist.

0

Werfen Sie eine andere Antwort ein: Versuchen Sie, Ihre PYTHONPATH zu überprüfen.

Zuerst versuchen und installieren wheel wieder:

pip install wheel 

Dies sollte Ihnen sagen, wo Rad installiert ist, zB:

Requirement already satisfied: wheel in /usr/local/lib/python3.5/dist-packages 

Dann die Position des Rades zu Ihrem PYTHONPATH hinzufügen:

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.5/dist-packages/wheel 

Jetzt sollte ein Rad gut funktionieren.

python setup.py bdist_wheel 
1

Es könnte auch sein, dass Sie nur ein Python3-System haben. Sie haben daher die erforderlichen Pakete über pip3 installiert, wie pip3 install wheel.

Sie müssen Ihre Sachen speziell mit python3 aufbauen.

python3 setup.py sdist 
python3 setup.py bdist_wheel 

Prost.