为什么python setup.py说的命令无效';bdist#u wheel';关于特拉维斯·西?

为什么python setup.py说的命令无效';bdist#u wheel';关于特拉维斯·西?,python,travis-ci,setup.py,pypi,Python,Travis Ci,Setup.py,Pypi,我的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 pytho

我的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虚拟机上执行相同操作时:

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

这是相关的,但请注意,我正在安装控制盘并升级设置工具。

此问题是由于:

  • 为Python2.7安装的旧版本pip(6.1.1)
  • 可靠的Beta映像上安装了多个Python 2.7副本
  • Python2.7用于
    sudo
这一切都有点复杂,这里有更好的解释

我的解决方案是使用用户
travis
而不是
sudo
安装:

- pip2.7 install --upgrade --user travis pip setuptools wheel virtualenv

必须安装
控制盘
软件包。一切都是最新的,但仍然给出了错误

pip install wheel
然后


工作没有问题。

这个错误很奇怪,因为许多人提出了答案,但得到了混合的解决方案。我试过了,加上去。直到我添加了
pip安装——升级pip
之后,我才最终删除了这个错误。但是我没有时间来区分哪个是哪个,所以这只是供参考。

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

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

wheel的文档中也提到了这一点

我已经安装了
控制盘
,因此我尝试卸载并重新安装,解决了以下问题:

pip uninstall wheel
pip install wheel

奇怪…

我的修复程序是安装python3 dev

pip install wheel
为我工作,但你也可以加上这个

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

要安装setup.py并保存一个pip安装命令,请尝试通过从setuptools而不是distutils.core导入安装程序来修改setup.py文件 我在Mac OSX 10.8.5上安装jupyter时遇到了类似的问题,其他答案都没有帮助。这个问题是由为名为
pyzmq
的包构建“轮子”引起的,错误消息占据了数百页

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

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

此后,
jupyter
的安装成功无误。

它帮助我按照此处的说明进行操作:

Debian/Ubuntu

Python 2:

sudo apt install python-pip
Python 3:

sudo apt install python3-venv python3-pip

使用Ubuntu18.04,这个问题可以通过安装
python3wheel
包来解决


通常,这是作为任何Python包的依赖项安装的。但是,尤其是在构建您经常使用的容器映像时,
--没有安装建议
,因此它经常丢失,必须先手动安装。

在我的情况下,由venv创建的wheel/pip/setuptools版本太旧了。 这项工作:

venv/bin/pip  install --upgrade pip wheel setuptools
2020年1月

浪费了两个小时

在AWS
Ubuntu 18.04新机器上
,需要进行以下安装:

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行作为先决条件


希望对您有所帮助。

在您的
设置.py中,如果您有:

from distutils.core import setup
然后,将其更改为

from setuptools import setup

然后重新创建您的virtualenv并重新运行该命令,它应该会工作。

我确实在我的Ubuntu中安装了python3 dev
,并在
setup.py
中添加了
setup\u requires=[“wheel”]
,如果您使用的是
setup.cfg
文件,请在
install\u require
部分之前添加此项:

setup_requires =
    wheel

setup.cfg项目示例:

# setup.py
from setuptools import setup

setup()

如果以上这些都不适用于您,那么您可能正经历着与我相同的问题。我只是在尝试安装
pyspark
时才看到此错误。解决方案将在另一个stackoverflow问题中解释


我发布了这张b/c。从错误消息中,我并没有立即意识到我的问题完全源于
pyspark
pypandoc
的依赖,我希望能让其他人免于数小时的挠头!=)

也许你的pip版本已经过时了。在新创建的虚拟环境中安装模块时,我在WSL中遇到了同样的问题。我可以通过运行以下命令来解决此问题:

$./bin/python3-m pip安装-升级pip

在我的例子中,
sudo-H pip安装setuptools——升级解决了这个问题。@MartinThoma谢谢你的提示。在发布了
sudo-H pip-install-wheel之后,它对我起到了作用——升级
对于我来说,升级pip就足够了,从9.0.1升级到20.0.2“pip-install-wheel”有时我需要
pip3安装控制盘
,因为我已经为
pip
安装了控制盘,但没有安装
pip3
。这很有效,但在
pip安装控制盘
之后,我不得不
pip卸载-r requirements.txt
并重新执行
pip安装-r requirements.txt
无法打开文件'setup.py':[错误2]没有这样的文件或目录
有没有办法在干净的虚拟环境中自动安装
wheel
python3-m venv-系统站点包
会添加太多的包。这对我来说很有效。我使用distutils而不是setuptools进行安装,我已经安装了wheel包。对我来说很有效!我是将一个包从Python2迁移到Python3,不幸的是找不到相关指南。任何人做同样的事情并对这个问题感到失望,这可能会帮到你!FWIW我刚刚遇到这个错误,从一个激活的VirtualNV上卸载并重新安装meI-ran
pip安装轮
,修复了它,b但是,在删除并重新创建virtualenv之后,修复程序仍然存在,这毫无意义。我本以为
pip install wheel
的任何效果都会随virtualenv一起消失。那些人已经安装了wheel,但仍然没有安装
# setup.py
from setuptools import setup

setup()
# setup.cfg
[metadata]
name = name
version = 0.0.1
description = desc
long_description = file: README.md
long_description_content_type = text/markdown
url = url
author = author
classifiers =
    Programming Language :: Python
    Programming Language :: Python :: 3

[options]
include_package_data = true
packages = find:
setup_requires =
    wheel
install_requires =
    packages
    packages
    packages