2014-10-30 7 views
127

Qui ci sono i comandi Sono in esecuzione:Perché non posso creare una ruota in python?

$ 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 

Inoltre, sto facendo funzionare un mac con pitone homebrewed

Ecco il mio script setup.py: https://gist.github.com/cloudformdesign/4791c46fe7cd52eb61cd

ho intenzione assolutamente Pazzesco - Non riesco a capire perché questo non funzionerebbe.

+1

E avete installato il pacchetto 'wheel' come consiglia la risposta di Thomas? –

risposta

204

installare il primo wheel package:

pip install wheel 

La documentazione non è eccessivamente chiaro su questo, ma "il progetto della ruota fornisce un comando bdist_wheel per setuptools" significa in realtà "la ruota pacchetto. .. ".

+1

Così sputare il file: nioblocks-1.01-cp34-cp34m-macosx_10_9_x86_64.whl - funziona con qualsiasi sistema operativo, o c'è qualcos'altro che devo fare per farlo funzionare? (il "pacchetto" è solo un mucchio di dipendenze per l'installazione da pip in questo momento) – vitiral

+1

@GarrettLinux Non lo so, mi dispiace, ma ti incoraggio a fare una domanda separata per questo; –

+1

Ho risolto anche questo problema: l'aggiunta di qualsiasi file al file setup.py gli ha dato una ruota generale. Controlla ad esempio il codice aggiornato nella mia domanda. – vitiral

119

Ho anche corse in messaggio di errore invalid command 'bdist_wheel'

Si scopre le distutils pacchetto setup.py utilizzati piuttosto che setuptools. Cambiarlo come di seguito mi ha permesso di costruire la ruota.

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

sì, ho avuto quel problema contemporaneamente! Molto importante e il messaggio di errore è scadente. – vitiral

+0

@geographika sì questo comando è anche la documentazione su https://docs.python.org/2/distutils/setupscript.html replicherebbe i problemi che si verificano mentre usa i disutils – JamesD

+1

Potrebbe anche essere necessario cambiare 'da distutils. core import Extension, Command' to 'from setuptools import Extension, Command' almeno per pacchetto con cui stavo lavorando. – eseglem

30

Aggiorna anche i tuoi setuptools.

pip install setuptools --upgrade 

Se non funziona troppo, si potrebbe provare con l'aggiunta di --force bandiera.

+2

Questo era il problema per me (su Mac) – wisbucky

+0

questo era il problema per me (debian) – nuttynibbles

+1

my setuptools è stato rimosso, o qualcosa non andava. Quindi ho dovuto fare: pip installa setuptools - upgrade --force – nycynik

8

Mi sono imbattuto in questo all'improvviso, dopo che aveva funzionato in precedenza, ed era perché ero dentro un virtualenv, e wheel non è stato installato nel virtualenv.

0

Ho lo stesso problema. Ma sembra che non ho usato sudo prima del comando. Dopo l'uso, raccomandare con il permesso di amministrazione. ha funzionato.

0

Ho provato tutto qui senza fortuna, ma ho trovato una soluzione alternativa. Dopo aver eseguito il comando (e non): bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

Vai alla directory temporanea lo strumento realizzato (dato in uscita dell'ultimo comando), quindi eseguire python setup.py bdist_wheel. Il file .whl si trova nella cartella dist.

0

Lancio di un'altra risposta: provare a verificare il numero PYTHONPATH.

primo luogo, cercare ed installare wheel ancora:

pip install wheel 

Questo dovrebbe dirvi dove è installato ruote, ad esempio:

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

Quindi aggiungere la posizione della ruota per il vostro PYTHONPATH:

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

Ora la costruzione di una ruota dovrebbe funzionare correttamente.

python setup.py bdist_wheel 
1

Potrebbe anche essere che si dispone solo di un sistema python3. Quindi avete installato i pacchetti necessari tramite l'installazione di pip3, come pip3 install wheel.

Avrete bisogno di costruire le vostre cose usando python3 in particolare.

python3 setup.py sdist 
python3 setup.py bdist_wheel 

Cheers.