为什么python setup.py在Travis CI上说无效命令'bdist_wheel'?

问题描述 投票:109回答:8

我的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'

Why can I not create a wheel in python?是相关的,但请注意我正在安装车轮和升级setuptools。

python travis-ci setup.py pypi
8个回答
226
投票

不得不安装wheel包。一切都是最新的,但仍然给出了错误。

pip install wheel

然后

python setup.py bdist_wheel 

工作没有问题。


36
投票

这个问题是由于:

  • 为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

29
投票
pip install wheel

为我工作,但你也可以添加这个

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

到setup.py并保存自己的pip install命令


24
投票

如果您已经安装了所有必需的模块,则可能需要在setuptools文件中导入setup.py模块。所以只需在setup.py文件的前面添加以下行。

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

这在wheel的文档中也有提到。 https://wheel.readthedocs.io/en/stable/#usage


20
投票

这个错误很奇怪,很多提议的答案和混合解决方案。我尝试了它们,添加它们。只有当我添加pip install --upgrade pip最终为我删除了错误。但是我没有时间去隔离哪个,所以这只是fyi。


8
投票

我已经安装了wheel所以我试图卸载并重新安装,它解决了这个问题:

pip uninstall wheel
pip install wheel

奇怪的...


5
投票

我的修复是apt install python3-dev


2
投票

尝试通过从setuptools导入setup而不是distutils.core来修改setup.py文件


0
投票

与Travis CI无关,但我遇到了类似的问题,试图在我的Mac OSX 10.8.5上安装jupiter,其他答案都没有帮助。问题是由为pyzmq包构建“wheel”引起的,错误消息填满了数百页。

我找到的解决方案是直接安装该软件包的旧版本:

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

之后,qazxsw poi的安装顺利完成。

© www.soinside.com 2019 - 2024. All rights reserved.