python setup.py가 Travis CI에서 잘못된 명령 'bdist_wheel'을 말하는 이유는 무엇입니까?


330

내 Python 패키지에는 setup.py다음과 같이 프로비저닝 할 때 Ubuntu Trusty 및 새로운 Vagrant Ubuntu Trusty 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

그러나 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

나는 얻다:

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'

이것은 왜 파이썬에서 바퀴를 만들 수 없습니까? 관련되어 있지만 휠을 설치하고 setuptools를 업그레이드하고 있습니다.

답변:


470

wheel패키지 를 설치해야했습니다 . 모든 것이 최신이지만 여전히 오류가 발생합니다.

pip install wheel

그때

python setup.py bdist_wheel 

문제없이 일했습니다.


59
"핍 설치 휠"은 때때로 충분합니다
oxidworks

20
나는 pip3 install wheel이미 바퀴를 설치 pip했지만 설치 하지 않았기 때문에 필요했습니다 pip3.
TetraDev

2
이 일을하지만 이후 pip install wheel나는에 가지고 pip uninstall -r requirements.txt와 다시 실행pip install -r requirements.txt
simple_code

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

4
wheel깨끗한 가상 환경에 자동으로 설치하는 방법이 있습니까? python3 -m venv --system-site-packages너무 많은 패키지를 추가합니다.
Tobias Sette

83
pip install wheel

나를 위해 일했지만 이것을 추가 할 수도 있습니다

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

setup.py하고 pip install 명령을 저장하십시오.


2
그 사람들은 이미 바퀴를 설치했지만 여전히 오류가 발생하면 setup_requires=['wheel']이 오류를 제거하기 위해 추가 할 수 있습니다
Shankar Pandala

1
이것은 예상대로 작동하지 않습니다. 1-처음에는 wheelpip로 설치했기 때문에 작동합니다 . 새로 설치하면 다시 실패합니다. 2- 설명서에 "참고 : setup_requires에 나열된 프로젝트는 설치 스크립트가 실행중인 시스템에 자동으로 설치되지 않습니다."라고 표시되어 있습니다.
Tobias Sette

@TobiasSette뿐만 아니라 동일한 문서 링크에 "setup_requires를 사용한 경고는 PEP-518을 선호하지 않는 것이 좋습니다."
Jeff Wright

73

2020 년 1 월

2 시간이 낭비되었습니다.

AWS의 Ubuntu 18.04 new machine경우 아래 설치가 필요합니다.

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

특히 마지막 줄은 필수입니다.
그러나 전제 조건으로 3 줄이 필요할 수 있습니다.

희망이 도움이됩니다.


2
정확히 1 년 후, 당신은 저를 힘들게 구했습니다. 감사합니다.
DaveTheMinion

7
내가 사용되었다 --no-install-recommends(A 도커 이미지에 DL3015 이 오류로) 실행, 나는 명시 적으로 설치하는 데 필요한 python3-wheel. 감사!
dimo414

그것이 도움이 된 것을 알게되어서, 나의 가상 환경 (venv)에있었습니다.
마노 하르 레디 포로 디

1
시간을 절약했습니다! 감사합니다 @ManoharReddyPoreddy
Rahul

1
휠이 이미 설치되어 있기 때문에 마지막 라인은 작동하지 않아야합니다. 당신은 그것을 실행 했습니까 --upgrade? 누구나 Ubuntu 18.04부터 최소 Dockerfile을 만들 수 있다면 이것이 표준이 될 것입니다.
l0b0

51

이 문제는 다음으로 인해 발생합니다.

  • Python 2.7 용으로 이전 버전의 pip (6.1.1) 설치
  • Trusty Beta 이미지에 여러 개의 Python 2.7 사본 설치
  • Python 2.7이 사용되는 다른 위치 sudo

https://github.com/travis-ci/travis-ci/issues/4989 에서 조금 복잡하고 잘 설명되어 있습니다 .

내 솔루션은 다음 travis대신 사용자와 함께 설치하는 것이 었습니다 sudo.

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

8
제 경우 sudo -H pip install setuptools --upgrade에는 문제를 해결했습니다.
Martin Thoma 2012 년

2
@MartinThoma 팁 주셔서 감사합니다. 발행 후 저에게 sudo -H pip install wheel --upgrade
효과적

필자의 경우 9.0.1에서 20.0.2로 핍을 업그레이드하는 것으로 충분했습니다.
Seyf

45

필요한 모든 모듈이 이미 설치되어 있으면 파일로 setuptools모듈 을 가져와야 setup.py합니다. 따라서 setup.py파일 맨 앞에 다음 줄을 추가 하십시오.

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

이것은 wheel의 문서에도 언급되어 있습니다. https://wheel.readthedocs.io/en/stable/#usage


6
이것은 나를 위해 일했습니다. 설정에 setuptools 대신 distutils를 사용하고 있었고 휠 패키지가 이미 설치되어 있습니다.
Alex Kaszynski

26

이 오류는 많은 제안 된 답변과 혼합 솔루션으로 이상합니다. 나는 그들을 시도하고 추가했다. pip install --upgrade pip마지막으로 추가했을 때만 오류가 제거되었습니다. 그러나 나는 어느 것을 분리 할 시간이 없으므로 이것은 단지 fyi입니다.


23

필자의 경우 venv에서 만든 wheel / pip / setuptools 버전이 너무 오래되었습니다. 이것은 작동합니다 :

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

11

이미 wheel설치 했으므로 제거하고 다시 설치하려고했는데 문제가 해결되었습니다.

pip uninstall wheel
pip install wheel

기묘한...


FWIW 방금이 오류가 발생하여 제거 및 재설치가 저에게
Vincent


6

당신의에서 setup.py, 당신은 할 경우 :

from distutils.core import setup

그런 다음

from setuptools import setup

그런 다음 virtualenv를 다시 작성하고 명령을 다시 실행하면 작동합니다.


1
이것은 내 문제를 해결합니다. 감사합니다. +1
Hai Vu

5

distutils.core 대신 setuptools에서 설정을 가져 와서 setup.py 파일을 수정하십시오.


나를 위해 일했다! Python2에서 Python3으로 패키지를 마이그레이션하고 있었지만 불행히도 그 가이드를 찾을 수 없었습니다. 같은 일을 하고이 문제에 좌절하는 사람이라면 누구나 그렇게 할 수 있습니다!
skytreader

4

내가 그랬어 apt-get install python3-dev내 우분투 및 추가 setup_requires=["wheel"]setup.py


11
실행하기에 충분할 수 있습니다 pip install wheel.
kap


1

Ubuntu 18.04를 사용하면 python3-wheel패키지 를 설치하여이 문제를 해결할 수 있습니다 .

일반적으로 이것은 모든 Python 패키지에 대한 종속성으로 설치됩니다. 그러나 특히 컨테이너 이미지를 빌드 할 때 작업하는 --no-install-recommends경우가 많으므로 종종 누락되어 수동으로 먼저 설치해야합니다.


0

Travis CI와 관련이 없지만 jupyterMac OSX 10.8.5에 설치하려고 할 때 비슷한 문제가 발생했지만 다른 답변은 도움이되지 않았습니다. 이 문제는 pyzmq수백 페이지를 채우는 오류 메시지와 함께 라는 패키지의 "바퀴"를 작성하여 발생했습니다.

내가 찾은 해결책은 해당 패키지의 이전 버전을 직접 설치하는 것입니다.

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

그 후, jupyter오류없이 성공적으로 설치되었습니다 .


0

setup.cfg파일을 사용 하는 경우 install_require파트 앞에 이것을 추가하십시오 .

setup_requires =
    wheel

setup.cfg 프로젝트의 예 :

# 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.