【问题标题】:Why can I not create a wheel in python?为什么我不能在 python 中创建一个轮子?
【发布时间】:2014-12-27 03:35:28
【问题描述】:

这是我正在运行的命令:

$ 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

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

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

我快疯了——我不明白为什么这不起作用。

【问题讨论】:

  • 您已经按照 Thomas 的回答建议安装了 wheel 软件包?
  • 我也有同样的问题。但似乎我在推荐之前没有使用 sudo 。使用具有管理员权限的推荐后。它奏效了。

标签: python pip setuptools python-wheel


【解决方案1】:

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

首先,尝试再次安装wheel

pip install wheel

这应该告诉你轮子的安装位置,例如:

Requirement already satisfied: wheel in /usr/local/lib/python3.5/dist-packages

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

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.5/dist-packages/wheel

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

python setup.py bdist_wheel

【讨论】:

    【解决方案2】:

    首先更新您的pip

    pip install --upgrade pip
    

    对于 Python 3:

    pip3 install --upgrade pip
    

    【讨论】:

    • 这是现在最有用的答案。较新版本的 pip install 不使用 bdist_wheel,因此升级 pip 对我有用,无需安装/更新 setuptools 或 wheel
    【解决方案3】:

    也可能是你只有一个 python3 系统。 因此,您已经通过 pip3 install 安装了必要的软件包,例如 pip3 install wheel

    你需要专门使用 python3 来构建你的东西​​。

    python3 setup.py sdist
    python3 setup.py bdist_wheel
    

    干杯。

    【讨论】:

      【解决方案4】:

      我尝试了这里所说的一切,但没有任何运气,但找到了解决方法。 运行此命令后(失败):bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

      转到工具创建的临时目录(在最后一个命令的输出中给出),然后执行python setup.py bdist_wheel.whl 文件位于 dist 文件夹中。

      【讨论】:

        【解决方案5】:

        先安装wheel package

        pip install wheel
        

        文档对此并不太清楚,但“wheel 项目为 setuptools 提供 bdist_wheel 命令” 实际上意味着 “wheel .. .".

        【讨论】:

        • 这样就可以输出文件了:nioblocks-1.01-cp34-cp34m-macosx_10_9_x86_64.whl——这适用于任何操作系统,还是我需要做其他事情才能让它工作? (“包”只是 pip 现在安装的一堆依赖项)
        • @GarrettLinux 我不知道,很抱歉,但我鼓励您为此提出一个单独的问题; )
        • 我也解决了这个问题——将任何文件添加到 setup.py 文件中都会给它一个通用的轮子。例如,查看我的问题中的更新代码。
        • 如果 setup.py 以某种方式使用 distutils 而不是 setuptools(对我来说就是这种情况),即使安装了轮子,您也会收到 OP 的错误,请参阅 geographika 的答案。
        • 对我来说问题出在旧版本的 pip 上。由pip install --upgrade pip修复
        【解决方案6】:

        也更新您的设置工具。

        pip install setuptools --upgrade
        

        如果这也失败了,您可以尝试使用额外的 --force 标志。

        【讨论】:

        • 我的 setuptools 被删除了,或者出现了问题。所以我不得不这样做: pip install setuptools --upgrade --force
        【解决方案7】:

        我也是突然遇到这个问题,之前是可以的,因为我在一个virtualenv里面,而wheel没有安装在virtualenv中。

        【讨论】:

          【解决方案8】:

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

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

          #from distutils.core import setup
          from setuptools import setup
          

          【讨论】:

          • 是的,我曾经也遇到过这个问题!很重要,而且报错信息很差。
          • @geographika 是的,这是命令,docs.python.org/2/distutils/setupscript.html 上的文档也会复制您看到的问题,因为它使用了 disutils
          • 可能还需要将 from distutils.core import Extension, Command 更改为 from setuptools import Extension, Command 至少对于我正在使用的包。
          • 我得到了 pycrypto 的这个错误,它甚至没有导入设置。但是,我在开头添加了from setuptools import setup,它解决了这个问题。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-11-04
          • 1970-01-01
          • 2015-10-12
          相关资源
          最近更新 更多