Python setup.py neden Travis CI'de geçersiz 'bdist_wheel' diyor?


330

Benim Python paketi, setup.pyUbuntu Trusty ve taze Vagrant Ubuntu Trusty VM üzerinde yerel olarak iyi bir şekilde inşa ettiğimde bunu sağladığımda:

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

Ama aynısını bir Travis CI Trusty Beta VM'de yaptığımda:

- 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

Alırım:

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'

Python'da neden bir tekerlek oluşturamıyorum? ilgili ama ben tekerlek takıyorum ve setuptools yükseltme not.

Yanıtlar:


470

wheelPaketi kurmak zorunda kaldım . Her şey günceldi ama yine de hata veriyor.

pip install wheel

sonra

python setup.py bdist_wheel 

Sorunsuz çalıştı.


59
"pip install wheel" bazen yeterlidir
oxidworks

20
İhtiyacım vardı pip3 install wheel- çünkü zaten tekerlek taktım pipama takmadım pip3.
TetraDev

2
Bu çalıştı ama tekrarlamak pip install wheelzorunda pip uninstall -r requirements.txtve sonrapip install -r requirements.txt
simple_code

9
can't open file 'setup.py': [Errno 2] No such file or directory
Cerin

4
wheelTemiz bir sanal ortama otomatik olarak yüklenmenin bir yolu var mı ? python3 -m venv --system-site-packagesçok fazla paket ekleyecek.
Tobias Sette

83
pip install wheel

benim için çalıştı, ama bunu da ekleyebilirsiniz

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

.py'ye gidin ve kendinize pip install komutu kaydedin


2
Bu insanlar zaten tekerlek takılı ve hala hata alıyorum bu hatadan setup_requires=['wheel']kurtulmak için ekleyebilirsiniz
Shankar Pandala

1
Bu beklendiği gibi çalışmıyor: 1 - ilk başta sadece wheelpip ile kurduğumuz için çalışıyor . Temiz bir kurulumda yeniden başarısız olur 2 - belgelerde "Not: setup_requires'da listelenen projeler kurulum komut dosyasının çalıştırıldığı sisteme otomatik olarak yüklenmeyecektir."
Tobias Sette

Sadece bu değil, @TobiasSette, ancak aynı belge bağlantısı şöyle diyor: "Setup_requires uyarısı PEP-518 lehine önerilmez."
Jeff Wright

73

Ocak 2020

2 saat israf edilir.

Bir AWS'de Ubuntu 18.04 new machineaşağıdaki kurulumlar gereklidir:

sudo apt-get install gcc libpq-dev -y
sudo apt-get install python-dev  python-pip -y
sudo apt-get install python3-dev python3-pip python3-venv python3-wheel -y
pip3 install wheel

Özellikle son satır zorunludur.
Ancak daha önce önkoşul olarak 3 satır gerekebilir.

Umarım yardımcı olur.


2
Tam olarak bir yıl sonra beni çok zorladın. Teşekkür ederim.
DaveTheMinion

7
Ben kullanıyordum --no-install-recommends(a Docker görüntüsünde DL3015 bu hatanın içine) ve koşma, ben açıkça yüklemek için gereken python3-wheel. Teşekkürler!
dimo414

Yararlı olduğunu bilmek güzel, benimki sanal bir ortamdaydı (venv).
Manohar Reddy Poreddy

1
beni saatler kurtardı! Thanks a lot @ManoharReddyPoreddy
Rahul

1
Tekerlek zaten takılmış olduğundan, son satırın op olmaması gerekir. Birlikte mi çalıştın --upgrade? Herkes Ubuntu 18.04'ten başlayarak minimum bir Dockerfile oluşturabiliyorsa, bu altın standart olacaktır.
l0b0

51

Bu sorunun nedeni:

  • Python 2.7 için eski bir pip (6.1.1) sürümü kuruluyor
  • Python 2.7'nin Trusty Beta görüntüsüne birden çok kopyası kuruldu
  • için kullanılan Python 2.7 için farklı bir konum sudo

Her şey biraz karmaşık ve daha iyi burada açıklanmıştır https://github.com/travis-ci/travis-ci/issues/4989 .

Benim çözümüm travisyerine kullanıcı ile yüklemek oldu sudo:

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

8
Benim durumumda, sudo -H pip install setuptools --upgradesorunu çözdü.
Martin Thoma

2
@MartinThoma Tahmininiz için teşekkür ederiz. sudo -H pip install wheel --upgrade
Verdikten

Benim durumumda pip yükseltme yeterliydi, 9.0.1'den 20.0.2'ye
Seyf

45

Gerekli tüm modüller zaten yüklüyse, büyük olasılıkla setuptoolsmodülü setup.pydosyanıza almanız gerekir . Bu nedenle, setup.pydosyanın başına aşağıdaki satırı ekleyin .

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

Bu, tekerlek belgelerinde de belirtilmiştir. https://wheel.readthedocs.io/en/stable/#usage


6
Bu benim için çalıştı. Kurulum için setuptools yerine distutils kullanıyordum ve zaten tekerlek paketini kurmuştum.
Alex Kaszynski

26

Bu hata, birçok önerilen cevap kadar garip ve karışık çözümler aldı. Onları denedim, ekle. Sadece pip install --upgrade pipnihayet eklediğimde benim için hatayı kaldırdım. Ama izole etmek için zamanım yok, bu yüzden bu sadece fyi.


23

benim durumumda, venv tarafından oluşturulan tekerlek / pip / setuptools sürümü çok eski. bu çalışıyor:

venv/bin/pip  install --upgrade pip wheel setuptools

11

Zaten wheelyüklemiştim, bu yüzden kaldırmayı ve yeniden yüklemeyi denedim ve sorunu düzeltti:

pip uninstall wheel
pip install wheel

Tuhaf...


FWIW Bu hatayla yeni karşılaştım ve kaldırma ve yeniden yükleme benim için çalıştı
Vincent


6

Sizin setup.py, varsa:

from distutils.core import setup

Ardından, olarak değiştirin

from setuptools import setup

Ardından virtualenv'inizi yeniden oluşturun ve komutu yeniden çalıştırın, çalışması gerekir.


1
Bu benim sorunumu çözer. Teşekkür ederim. +1
Hai Vu

5

Distutils.core yerine setuptools'tan kurulumu içe aktararak setup.py dosyasını değiştirmeyi deneyin.


Benim için çalıştı! Bir paketi Python2'den Python3'e geçiriyordum ve maalesef bunun için bir rehber bulamadım. Herkes aynı şeyi yapıyor ve bu sorun ile sinirli, bu sizin için yapabilir!
skytreader

4

Yaptığım apt-get install python3-devbenim Ubuntu ve katma setup_requires=["wheel"]içindesetup.py


11
Koşmak yeterli olabilir pip install wheel.
kap


1

Ubuntu 18.04 kullanıldığında bu sorun python3-wheelpaketin yüklenmesi ile çözülebilir .

Genellikle bu, herhangi bir Python paketine bağımlı olarak yüklenir. Ancak özellikle konteyner görüntüleri oluştururken sıklıkla çalışıyorsunuz --no-install-recommendsve bu nedenle genellikle eksiktir ve önce manuel olarak yüklenmesi gerekir.


0

Travis CI ile ilgili değil, ancak jupyterMac OSX 10.8.5'e yüklemeye çalışırken benzer bir sorunla karşılaştım ve diğer cevapların hiçbiri yardımcı olmadı. Sorun, pyzmqyüzlerce sayfayı dolduran hata mesajlarıyla çağrılan paket için "tekerlek" in oluşturulmasından kaynaklandı .

Bulduğum çözüm doğrudan bu paketin eski bir sürümünü kurmaktı:

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

Bundan sonra, jupyterhatasız kurulum başarılı oldu.


0

setup.cfgDosya kullanıyorsanız , bunu install_requireparçadan önce ekleyin :

setup_requires =
    wheel

Setup.cfg projesi örneği:

# setup.py
from setuptools import setup

setup()
# setup.cfg
[metadata]
name = name
version = 0.0.1
description = desc
long_description = file: README.md
long_description_content_type = text/markdown
url = url
author = author
classifiers =
    Programming Language :: Python
    Programming Language :: Python :: 3

[options]
include_package_data = true
packages = find:
setup_requires =
    wheel
install_requires =
    packages
    packages
    packages
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.