Почему python setup.py говорит неверную команду 'bdist_wheel' на Travis CI?
Пакет My 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'
Это Почему я не могу создать колесо в python?, но обратите внимание, что я устанавливаю колесо и обновляю setuptools.
Ответы
Ответ 1
Эта проблема возникает из-за:
- для Python 2.7 установлена старая версия pip (6.1.1)
- несколько копий Python 2.7, установленных на образ Trusty Betali >
- другое место для 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
Ответ 2
Придется установить пакет wheel
. Все было обновлено, но все еще выдавало ошибку.
pip install wheel
затем
python setup.py bdist_wheel
Работал без проблем.
Ответ 3
pip install wheel
работал для меня, но вы также можете добавить это
setup(
...
setup_requires=['wheel']
)
в setup.py и сохраните команду pip install
Ответ 4
Если у вас уже установлены все необходимые модули, вам, вероятно, нужно импортировать модуль setuptools
в ваш файл setup.py
. Так что просто добавьте следующую строку в setup.py
файла setup.py
.
import setuptools
from distutils.core import setup
# other imports and setups
Это также упоминается в документации колеса. https://wheel.readthedocs.io/en/stable/#usage
Ответ 5
Эта ошибка странная, так как многие предложили ответы и получили смешанные решения. Я попробовал их, добавить их. Только когда я добавил pip install --upgrade pip
окончательно убрал ошибку для меня. Но у меня нет времени, чтобы выделить, который есть что, так что это просто к вашему сведению.
Ответ 6
У меня уже было установлено wheel
поэтому я попытался удалить и переустановить, и это решило проблему:
pip uninstall wheel
pip install wheel
Weird...
Ответ 7
Мое исправление было apt install python3-dev
Ответ 8
Попробуйте изменить файл setup.py, импортировав настройки из setuptools вместо distutils.core
Ответ 9
Не относится к Travis CI, но я столкнулся с подобной проблемой, пытаясь установить jupiter
на мой Mac OSX 10.8.5, и ни один из других ответов не помог. Проблема была вызвана созданием "колеса" для пакета, называемого pyzmq
, с сообщениями об ошибках, заполняющими сотни страниц.
Решение, которое я нашел, состояло в том, чтобы непосредственно установить старую версию этого пакета:
python -m pip install pyzmq==17 --user
После этого установка jupyter
прошла без ошибок.
Ответ 10
Это помогло мне следовать инструкциям здесь:
https://packaging.python.org/guides/installing-using-linux-tools/
Python 2:
sudo apt install python-pip
Python 3:
sudo apt install python3-venv python3-pip