为什么我不能在python中创建一个轮子?

vit*_*ral 181 python pip setuptools python-wheel

以下是我正在运行的命令:

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

$ pip --version
pip 1.5.6 from /usr/local/lib/python3.4/site-packages (python 3.4)

$ python -c "import setuptools; print(setuptools.__version__)"
2.1

$ python --version
Python 3.4.1

$ which python
/usr/local/bin/python
Run Code Online (Sandbox Code Playgroud)

另外,我正在使用自制的python运行mac

这是我的setup.py脚本:https: //gist.github.com/cloudformdesign/4791c46fe7cd52eb61cd

我疯了 - 我无法弄清楚为什么这不起作用.

Tho*_*zco 293

首先安装wheel:

pip install wheel
Run Code Online (Sandbox Code Playgroud)

文档对此并不十分清楚,但"轮项目为setuptools提供了bdist_wheel命令"实际上意味着"轮组件 ......".

  • 对我来说问题是老版本的pip.由`pip install --upgrade pip`修复 (3认同)

geo*_*ika 160

我也遇到了错误信息 invalid command 'bdist_wheel'

结果是setup.py包使用了distutils而不是setuptools.如下更改它使我能够构建轮子.

#from distutils.core import setup
from setuptools import setup
Run Code Online (Sandbox Code Playgroud)

  • 也许有必要将`from distutils.core import Extension,Command`更改为`from setuptools import Extension,Command`至少对于我正在使用的包. (3认同)

luc*_*ald 36

同样更新您的setuptools.

pip install setuptools --upgrade
Run Code Online (Sandbox Code Playgroud)

如果那也失败了,你可以尝试使用额外的--force标志.


jbg*_*jbg 12

在它之前工作之后我也突然遇到了这个问题,这是因为我在virtualenv中,并wheel没有安装在virtualenv中.


Tom*_*art 6

更新您的pip第一个:

pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)

对于Python 3:

pip3 install --upgrade pip
Run Code Online (Sandbox Code Playgroud)


avi*_*610 5

抛出另一个答案:尝试检查您的PYTHONPATH.

首先,wheel再次尝试安装:

pip install wheel
Run Code Online (Sandbox Code Playgroud)

这应该告诉您车轮的安装位置,例如:

Requirement already satisfied: wheel in /usr/local/lib/python3.5/dist-packages
Run Code Online (Sandbox Code Playgroud)

然后将轮子的位置添加到您的PYTHONPATH

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.5/dist-packages/wheel
Run Code Online (Sandbox Code Playgroud)

现在构建一个轮子应该可以正常工作。

python setup.py bdist_wheel
Run Code Online (Sandbox Code Playgroud)