My Python package has a setup.py
which builds fine locally on Ubuntu Trusty and on a fresh Vagrant Ubuntu Trusty VM when I provision it like this:
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
But when I do the same on a 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
I get:
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'
This Why can I not create a wheel in python? is related but note I am installing wheel and upgrading setuptools.
Had to install the wheel
package. Everything was up to date but still giving the error.
pip install wheel
then
python setup.py bdist_wheel
Worked without issues.
This problem is due to:
- an old version of pip (6.1.1) being installed for Python 2.7
- multiple copies of Python 2.7 installed on the Trusty Beta image
- a different location for Python 2.7 being used for
sudo
It's all a bit complicated and better explained here https://github.com/travis-ci/travis-ci/issues/4989.
My solution was to install with user travis
instead of sudo
:
- pip2.7 install --upgrade --user travis pip setuptools wheel virtualenv
pip install wheel
worked for me, but you can also add this
setup(
...
setup_requires=['wheel']
)
to setup.py and save yourself a pip install command
If you already have all the required modules installed you probably need to import the setuptools
module in your setup.py
file. So just add the following line at the leading of setup.py
file.
import setuptools
from distutils.core import setup
# other imports and setups
This is also mentioned in wheel's documentation. https://wheel.readthedocs.io/en/stable/#usage
This error is weird as many proposed answers and got mixed solutions. I tried them, add them. It was only when I added pip install --upgrade pip
finally removed the error for me. But I have no time to isolate which is which,so this is just fyi.
I already had wheel
installed so I tried to uninstall and reinstall, and it fixed the issue:
pip uninstall wheel
pip install wheel
Weird...
My fix was apt install python3-dev
Try modifying the setup.py file by importing setup from setuptools instead of distutils.core
Not related to Travis CI but
I ran into similar problem trying to install jupiter
on my Mac OSX 10.8.5, and none of the other answers was of help. The problem was caused by building the "wheel" for the package called pyzmq
, with error messages filling hundreds of pages.
The solution I found was to directly install an older version of that package:
python -m pip install pyzmq==17 --user
After that, the installation of jupyter
succeded without errors.
来源:https://stackoverflow.com/questions/34819221/why-is-python-setup-py-saying-invalid-command-bdist-wheel-on-travis-ci