Waarom is Python Setup.py zeggen ongeldige commando ‘bdist_wheel’ op Travis CI?

My Python-pakket heeft een setup.pyDie prima lokaal bouwen op Ubuntu Trusty en op een verse zwerver Ubuntu Trusty VM wanneer ik het als deze bepaling:

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

Maar wanneer ik hetzelfde doe op een Travis CI Trusty Beta VM:

- 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

Ik krijg:

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'

dit Waarom kan ik geen wiel in Python maken? is gerelateerd, maar opmerking, ik installeer wiel en upgrade-setuptools.


Antwoord 1, Autoriteit 100%

Had de wheelpakket installeren. Alles was up-to-date maar gaf nog steeds de fout.

pip install wheel

Dan

python setup.py bdist_wheel 

Werkte zonder problemen.


Antwoord 2, autoriteit 22%

Jan 2020

2 uur verspild.

Op een AWS Ubuntu 18.04 new machinezijn onderstaande installaties vereist:

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

Vooral de laatste regel is een must.
Het kan echter zijn dat 3 regels vereist zijn als voorwaarde.

Hopelijk helpt dat.


Antwoord 3, autoriteit 11%

pip install wheel

werkte voor mij, maar je kunt dit ook toevoegen

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

naar setup.py en sla jezelf een pip install-opdracht op


Antwoord 4, autoriteit 7%

Als je alle vereiste modules al hebt geïnstalleerd, moet je waarschijnlijk de module setuptoolsimporteren in je setup.py-bestand. Voeg dus gewoon de volgende regel toe aan het begin van het bestand setup.py.

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

Dit wordt ook vermeld in de documentatie van het wiel. https://wheel.readthedocs.io/en/stable/#usage


Antwoord 5, autoriteit 6%

Dit probleem is te wijten aan:

  • een oude versie van pip (6.1.1) wordt geïnstalleerd voor Python 2.7
  • meerdere exemplaren van Python 2.7 geïnstalleerd op de Trusty Beta-image
  • een andere locatie voor Python 2.7 wordt gebruikt voor sudo

Het is allemaal een beetje ingewikkeld en wordt hier beter uitgelegd https://github.com /travis-ci/travis-ci/issues/4989.

Mijn oplossing was om te installeren met gebruiker travisin plaats van sudo:

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

Antwoord 6, autoriteit 3%

Deze fout is raar omdat veel voorgestelde antwoorden en gemengde oplossingen werden gegeven. Ik heb ze geprobeerd, voeg ze toe. Pas toen ik pip install --upgrade piptoevoegde, werd de fout uiteindelijk voor mij verwijderd. Maar ik heb geen tijd om te isoleren wat wat is, dus dit is slechts fyi.


Antwoord 7, autoriteit 3%

in mijn geval is de versie van wheel/pip/setuptools gemaakt door venv te oud.
dit werkt:

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

Antwoord 8, autoriteit 2%

Ik had wheelal geïnstalleerd, dus ik probeerde het te verwijderen en opnieuw te installeren, en het probleem werd opgelost:

pip uninstall wheel
pip install wheel

Vreemd…


Antwoord 9, autoriteit 2%

In uw setup.py, als u het volgende heeft:

from distutils.core import setup

Verander het dan in

from setuptools import setup

Maak vervolgens uw virtualenv opnieuw en voer de opdracht opnieuw uit, en het zou moeten werken.


Antwoord 10

Mijn oplossing was apt install python3-dev


Antwoord 11

Ik heb apt-get install python3-devin mijn Ubuntu gedaan en setup_requires=["wheel"]toegevoegd in setup.py


Antwoord 12

Probeer het setup.py-bestand te wijzigen door setup te importeren uit setuptools in plaats van distutils.core


Antwoord 13

Als u setup.cfg-bestanden gebruikt, voegt u dit toe vóór het gedeelte install_require:

setup_requires =
    wheel

Voorbeeld van setup.cfg-project:

# 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

Antwoord 14

Het heeft me geholpen om de instructies hier te volgen:

https://packaging.python.org/guides/installing- gebruik-linux-tools/

Debian/Ubuntu

Python 2:

sudo apt install python-pip

Python 3:

sudo apt install python3-venv python3-pip

Antwoord 15

Met Ubuntu 18.04 kan dit probleem worden opgelost door het python3-wheelpakket te installeren.

Meestal wordt dit geïnstalleerd als een afhankelijkheid van elk Python-pakket. Maar vooral bij het bouwen van containerimages werk je vaak met --no-install-recommendsen daarom ontbreekt het vaak en moet het eerst handmatig worden geïnstalleerd.


Antwoord 16

Als geen van de bovenstaande oplossingen voor u werkt, ondervindt u misschien hetzelfde probleem als ik. Ik zag deze fout alleen bij het installeren van pyspark. De oplossing wordt uitgelegd in deze andere stackoverflow-vraag kan pyspark niet installeren.

Ik post dit omdat het mij niet meteen duidelijk was uit de foutmelding dat mijn probleem uitsluitend voortkwam uit de afhankelijkheid van pysparkvan pypandocen ik hoop anderen te redden van urenlang hoofd krabben! =)


Antwoord 17

Misschien is uw pip-versie verouderd. Ik ondervond hetzelfde probleem in WSL tijdens het installeren van modules in een nieuw gecreëerde virtuele omgeving. Ik heb het kunnen oplossen door het volgende commando uit te voeren:

$ ./bin/python3 -m pip install --upgrade pip 

Antwoord 18

Niet gerelateerd aan Travis CI maar
Ik kwam een soortgelijk probleem tegen toen ik jupyterop mijn Mac OSX 10.8.5 probeerde te installeren, en geen van de andere antwoorden hielp. Het probleem werd veroorzaakt door het “wiel” te bouwen voor het pakket met de naam pyzmq, met foutmeldingen die honderden pagina’s vulden.

De oplossing die ik vond was om direct een oudere versie van dat pakket te installeren:

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

Daarna is de installatie van jupyterzonder fouten gelukt.

Other episodes