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.