我的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。
不得不安装wheel
包。一切都是最新的,但仍然给出了错误。
pip install wheel
然后
python setup.py bdist_wheel
工作没有问题。
这个问题是由于:
sudo
的不同位置这有点复杂,在这里更好地解释https://github.com/travis-ci/travis-ci/issues/4989。
我的解决方案是安装用户travis
而不是sudo
:
- pip2.7 install --upgrade --user travis pip setuptools wheel virtualenv
pip install wheel
为我工作,但你也可以添加这个
setup(
...
setup_requires=['wheel']
)
到setup.py并保存自己的pip install命令
如果您已经安装了所有必需的模块,则可能需要在setuptools
文件中导入setup.py
模块。所以只需在setup.py
文件的前面添加以下行。
import setuptools
from distutils.core import setup
# other imports and setups
这在wheel的文档中也有提到。 https://wheel.readthedocs.io/en/stable/#usage
这个错误很奇怪,很多提议的答案和混合解决方案。我尝试了它们,添加它们。只有当我添加pip install --upgrade pip
最终为我删除了错误。但是我没有时间去隔离哪个,所以这只是fyi。
我已经安装了wheel
所以我试图卸载并重新安装,它解决了这个问题:
pip uninstall wheel
pip install wheel
奇怪的...
我的修复是apt install python3-dev
尝试通过从setuptools导入setup而不是distutils.core来修改setup.py文件
与Travis CI无关,但我遇到了类似的问题,试图在我的Mac OSX 10.8.5上安装jupiter
,其他答案都没有帮助。问题是由为pyzmq
包构建“wheel”引起的,错误消息填满了数百页。
我找到的解决方案是直接安装该软件包的旧版本:
python -m pip install pyzmq==17 --user
之后,qazxsw poi的安装顺利完成。