【问题标题】:Can't build wheel - error: invalid command 'bdist_wheel'无法构建轮子 - 错误:无效命令“bdist_wheel”
【发布时间】:2023-11-15 19:47:01
【问题描述】:

我已经在这个非常相关的问题中尝试了所有方法: Why can I not create a wheel in python?

但我仍然得到:

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 8.1.1 from /home/bdillman/proj/fashion/lib/python3.5/site-packages (python 3.5)

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

$ python --version
Python 3.5.1

$ which python
/home/bdillman/workspace/fashion/bin/python

$ pip list
Mako (1.0.4)
MarkupSafe (0.23)
peewee (2.8.0)
pip (8.1.1)
PyYAML (3.11)
setuptools (21.0.0)
wheel (0.29.0)

所以看起来一切都已安装并且版本看起来不错(我认为)。有没有人有什么想法可以在这里检查以进一步诊断?

确切的命令是:

$ python setup.py bdist_wheel

我也试过了

$ sudo python setup.py bdist_wheel

我也完成了pip install --upgrade setuptoolspip install --upgrade wheel,它们是最新的。

【问题讨论】:

  • 您用于构建 wheel 文件的确切命令是什么?
  • 啊,可能会更新 pip、wheel 和 setuptools(pip install --upgrade setuptools 等)!
  • 将信息添加到问题中。我尝试了链接问题中列出的所有内容,但没有成功。它一定是别的东西。
  • 检查从 sudo 运行时执行的 python 路径,因为您使用的是本地安装 python。您很可能在使用/不使用 sudo 运行时使用不同的版本。
  • 当我从 sudo 运行时,我确实得到了另一个 python (/usr/bin/python),但我执行了 su rootsource ./bin/activate。没有成功,一切照旧。

标签: python pip setuptools python-wheel


【解决方案1】:

解决了。我不确定如何,但是我的 python 虚拟环境搞砸了,pip 使用了不同的虚拟环境。我修复了我的虚拟环境,现在一切正常。

我是 python 和虚拟环境的新手,我想我可能已经复制了一个包含虚拟环境的整个项目,然后对其进行了编辑(并且遗漏了一些参考,比如在 pip 脚本的顶部)。

【讨论】:

    【解决方案2】:

    需要注意的一点是,请确保您使用的是setuptools,而不是distutils

    【讨论】:

      【解决方案3】:

      我在最近使用 python3 -m venv 的 Ubuntu 上遇到过这种情况(您必须为此使用 install python3-venv),无论我清除环境并重试多少次,安装依赖项时都会出现 bdist_wheel 错误用于烧瓶。

      除了默认情况下没有venv 来正常安装 Python 3 之外,出于某种原因,在 Ubuntu 上我似乎还必须显式安装 wheel

      为清楚起见,以下不起作用

      1. python3 -m venv .
      2. . bin/activate
      3. pip install Flask

      但是,以下确实有效

      1. python3 -m venv .
      2. . bin/activate
      3. pip install wheel(从不需要在 Arch Linux 上执行此操作)
      4. pip install Flask

      【讨论】:

      • 为我工作。很奇怪。
      • 如果可行,那么也许应该全局安装 wheel
      • @jpaugh 我全局安装了,但是一直弹出错误,只安装在环境中解决了问题
      【解决方案4】:

      正如@HVNSweeting 提到的,我发现我的 setup.py 文件中有 distutils。 在我的情况下,我可以将 setup.py 文件中的 from 更改为使用 bdist_wheel

      # remove this line
      from distutils.core import setup
      # insert this line
      from setuptools import setup
      

      【讨论】: