我的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?是相关的,但请注意我正在安装wheel并升级setuptools。
答案 0 :(得分:178)
必须安装wheel
包。一切都是最新的,但仍然给出错误。
pip install wheel
然后
python setup.py bdist_wheel
没有问题。
答案 1 :(得分:71)
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 :(得分:34)
这个问题是由于:
sudo
这有点复杂,在这里更好地解释https://github.com/travis-ci/travis-ci/issues/4989。
我的解决方案是安装用户travis
而不是sudo
:
- pip2.7 install --upgrade --user travis pip setuptools wheel virtualenv
答案 3 :(得分:19)
这个错误很奇怪,因为许多提议的答案和混合解决方案。我尝试了它们,添加它们。只有当我添加pip install --upgrade pip
时才最终为我删除了错误。但我没有时间去隔离哪个,所以这只是fyi。
答案 4 :(得分:11)
在您的setup.py
中,如果您有:
from distutils.core import setup
然后,将其更改为
from setuptools import setup
然后重新创建您的virtualenv并重新运行该命令,它应该可以工作。
答案 5 :(得分:9)
pip install wheel
为我工作,但您也可以添加
setup(
...
setup_requires=['wheel']
)
到setup.py并保存一个pip安装命令
答案 6 :(得分:8)
我已经安装了wheel
,所以我尝试卸载并重新安装,它解决了该问题:
pip uninstall wheel
pip install wheel
很奇怪...
答案 7 :(得分:8)
我在Ubuntu中进行了apt-get install python3-dev
的操作,并在setup_requires=["wheel"]
中添加了setup.py
答案 8 :(得分:4)
如果您使用的是class ApplicationController < ActionController::API
def not_found
render json: { error: 'not_found' }
end
def authorize_request
header = request.headers['Authorization']
header = header.split(' ').last if header
begin
@decoded = JsonWebToken.decode(header)
@current_user = User.find(@decoded[:user_id])
rescue ActiveRecord::RecordNotFound => e
render json: { errors: e.message }, status: :unauthorized
rescue JWT::DecodeError => e
render json: { errors: e.message }, status: :unauthorized
end
end
end
文件,请将其添加到Started GET "/user/get_attendance_status" for 58.177.56.127 at 2020-05-23 19:12:49 +0800
Processing by ApplicationController#not_found as HTML
Parameters: {"a"=>"user/get_attendance_status"}
Completed 200 OK in 2ms (Views: 1.1ms | ActiveRecord: 0.0ms | Allocations: 93)
Started GET "/attendance/in" for 58.177.56.127 at 2020-05-23 19:13:14 +0800
Processing by ApplicationController#not_found as HTML
Parameters: {"a"=>"attendance/in"}
Completed 200 OK in 1ms (Views: 0.3ms | ActiveRecord: 0.0ms | Allocations: 91)
部分之前:
setup.cfg
setup.cfg项目示例:
install_require
setup_requires =
wheel
答案 9 :(得分:2)
我的解决方法是apt install python3-dev
答案 10 :(得分:1)
也许,您的 pip 版本已过时。在新创建的虚拟环境中安装模块时,我在 WSL 中遇到了同样的问题。我能够通过运行以下命令来解决它:
$ ./bin/python3 -m pip install --upgrade pip
答案 11 :(得分:1)
venv/bin/pip install --upgrade pip wheel setuptools
答案 12 :(得分:1)
它帮助我按照此处的说明进行操作:
https://packaging.python.org/guides/installing-using-linux-tools/
Debian / Ubuntu
Python 2:
sudo apt install python-pip
Python 3:
sudo apt install python3-venv python3-pip
答案 13 :(得分:1)
尝试通过从setuptools而非distutils.core导入设置来修改setup.py文件
答案 14 :(得分:0)
使用Ubuntu 18.04,可以通过安装python3-wheel
软件包来解决此问题。
通常,它作为对任何Python包的依赖项安装。但是特别是在构建容器映像时,您经常使用--no-install-recommends
,因此它经常丢失并且必须首先手动安装。
答案 15 :(得分:0)
与Travis CI不相关,但
尝试在Mac OSX 10.8.5上安装jupiter
时遇到了类似的问题,其他答案都没有帮助。该问题是由于为名为pyzmq
的软件包构建了“轮子”而导致的,错误消息充满了数百页。
我找到的解决方案是直接安装该软件包的旧版本:
python -m pip install pyzmq==17 --user
此后,jupyter
的安装成功,没有错误。
答案 16 :(得分:0)
如果以上方法都不适合您,则可能是您遇到了与我相同的问题。尝试安装pyspark
时,我仅看到此错误。此解决方案在其他另一个stackoverflow问题unable to install pyspark中进行了解释。
我发布此b / c,从错误消息中,我并没有立即意识到我的问题完全是由于pyspark
对pypandoc
的依赖而引起的,我希望能够拯救其他人从数小时的头部抓挠开始! =)