Python'da neden bir tekerlek oluşturamıyorum?


190

İşte çalıştırdığım komutlar:

$ 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

Ayrıca, homebrewed python ile bir mac çalıştırıyorum

İşte benim setup.py betiğim: https://gist.github.com/cloudformdesign/4791c46fe7cd52eb61cd

Kesinlikle deliriyorum - bunun neden işe yaramayacağını anlayamıyorum.


2
wheelThomas'ın cevabının önerdiği şekilde paketi kurdunuz mu?
Martijn Pieters

1
Aynı problemim var. Ama övgüden önce sudo kullanmadım gibi görünüyor. Kullanımdan sonra ödeği yönetme izni ile. işe yaradı.
avcı

Yanıtlar:


301

Önce wheelpaketi kurun :

pip install wheel

Dokümantasyon bu konuda çok net değil, ancak "tekerlek projesi kurulum araçları için bdist_wheel komutu sağlıyor" aslında "tekerlek paketi ..." anlamına geliyor .


1
Böylece dosya tükürmek: nioblocks-1.01-cp34-cp34m-macosx_10_9_x86_64.whl - bu herhangi bir işletim sistemi ile çalışacak, ya da çalışmak için yapmak zorunda başka bir şey var mı? ("paket" pip'in şu anda kurması için bir grup bağımlılıktır)
vitiral

1
@GarrettLinux Bilmem, üzgünüm, ama bunun için ayrı bir soru sormanızı öneririm; )
Thomas Orozco

1
Bu sorunu da çözdüm - setup.py dosyasına herhangi bir dosya eklemek genel bir tekerlek verdi. Örneğin, sorumun güncellenmiş koduna göz atın.
vitiral

Tekerlek takıldığında bile OP'nin hatasını alabilirsiniz, setup.py bir şekilde setuptools yerine distutils kullanıyorsa (benim için olduğu gibi), geographika'nın cevabına bakın.
Oliver

4
Benim için sorun pip'in eski versiyonuydu. tarafından düzeltildipip install --upgrade pip
Ryu_hayabusa

167

Ayrıca hata mesajıyla karşılaştım invalid command 'bdist_wheel'

Setuptools yerine setup.py kullanılan distutils paketini çıkarır. Aşağıdaki gibi değiştirmek tekerleği yapmamı sağladı.

#from distutils.core import setup
from setuptools import setup

1
evet, aynı zamanda bu problemi de yaşadım! Çok önemli ve hata mesajı zayıf.
vitiral

@geographika evet bu aynı zamanda docs.python.org/2/distutils/setupscript.html adresindeki belgeler de disutils kullandığından gördüğünüz sorunları çoğaltır
JamesD

3
En azından birlikte çalıştığım pakete from distutils.core import Extension, Commandgeçmek de gerekebilir from setuptools import Extension, Command.
eseglem

Pycrypto için bu hatayı aldım ve kurulumu bile içe aktarmadı. Ancak, from setuptools import setupbaşlangıçta ekledim ve sorunu düzeltti.
haridsv

38

Kurulum araçlarınızı da güncelleyin.

pip install setuptools --upgrade

Bu da başarısız olursa, ek --forcebayrakla deneyebilirsiniz .


1
kurulum araçlarım kaldırıldı veya bir sorun oluştu. Bu yüzden yapmak zorundaydım: pip install setuptools --upgrade --force
nycynik

12

Daha önce çalıştıktan sonra da birdenbire karşılaştım ve bunun nedeni bir sanalevin içinde olduğum ve sanalenvde wheelyüklü olmadığımdı.


8

İlkini güncelleyin pip:

pip install --upgrade pip

Python 3 için:

pip3 install --upgrade pip

Bu şimdi en yararlı cevap. Pip kurulumunun daha yeni sürümleri bdist_wheel kullanmaz, bu yüzden sadece kurulum araçlarını veya tekerleği takmaya / güncellemeye gerek kalmadan pip'i yükseltmek benim için çalıştı
theferrit32

4

Ayrıca sadece bir python3 sisteminiz olabilir. Bu nedenle gerekli paketleri pip3 takma tekerleği gibi pip3 takma yoluyla kurdunuz .

Özel olarak python3 kullanarak eşyalarınızı oluşturmanız gerekir.

python3 setup.py sdist
python3 setup.py bdist_wheel

Şerefe.


4

Başka bir cevap Fırlatma: çek deneyin PYTHONPATH.

İlk olarak, wheeltekrar yüklemeyi deneyin :

pip install wheel

Bu, tekerleğin nereye takıldığını size söylemelidir, örneğin:

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

Ardından, tekerleğin konumunu aşağıdaki konumlara ekleyin PYTHONPATH:

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

Şimdi bir tekerlek inşa etmek iyi çalışmalıdır.

python setup.py bdist_wheel

2

Burada her şeyi şanssız denedim ama bir çözüm buldum. Bu komutu çalıştırdıktan sonra (ve başarısız olduktan sonra):bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

Aracın yaptığı geçici dizine gidin (son komutun çıktısında verilen), ardından yürütün python setup.py bdist_wheel. .whlDosya içindedir distklasörde.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.