HOWTO · Python
Error: comando no válido Bdist_wheel en Python
Este tutorial le enseñará a corregir el comando de error no válido bdist_wheel en Python.
En esta página
El mensaje error: invalid command 'bdist_wheel' suele indicar que el proceso de compilación no encuentra el comando wheel en el entorno de Python que ejecuta setup.py. Primero instala wheel en ese mismo entorno; actualizar pip es un paso posterior de diagnóstico, no una solución garantizada.
Diagnosticar por qué no está disponible bdist_wheel
bdist_wheel es un comando de compilación de setuptools que proporciona el paquete wheel. La causa más habitual es que wheel no esté instalado en el intérprete usado para compilar, o que se haya instalado con el pip de otro intérprete. Comprueba qué Python y qué pip encuentra el shell y usa el intérprete correspondiente tanto para la instalación como para el comando de compilación heredado. Por ejemplo, python -m pip --version identifica el pip asociado a python; si el proyecto se ejecuta con python3, usa ese intérprete en ambos comandos.
El comando python setup.py bdist_wheel pertenece a un flujo de empaquetado heredado. Si el proyecto todavía lo usa, la siguiente sección muestra la solución directa. Para flujos de empaquetado más recientes, sigue el proceso de compilación documentado por el proyecto en lugar de asumir que este comando corresponde.
Instalar wheel en el entorno activo de Python
Instala el paquete con python -m pip install wheel para que pip pertenezca al intérprete python seleccionado. Si compilas con python3, usa python3 -m pip install wheel. En un entorno virtual activado, usa su python del mismo modo. Después, vuelve a intentarlo con python setup.py bdist_wheel (o con el comando equivalente de python3). Evita ejecutar pip sin especificar el intérprete si no sabes a cuál apunta.
El programa breve que aparece a continuación imprime los comandos correspondientes al intérprete de Python que lo ejecuta. Sirve para ilustrar cómo elegir los comandos; no instala paquetes ni compila una distribución.
import sys
python = sys.executable
print(f"{python} -m pip install wheel")
print(f"{python} setup.py bdist_wheel")
Si la compilación sigue indicando que bdist_wheel no está disponible, confirma que los comandos de instalación y compilación usan el mismo intérprete y que el entorno virtual está activado en el shell donde los ejecutas. python -m pip show wheel puede ayudarte a comprobar en qué entorno está instalado el paquete; verifica que sea el entorno con el que quieres compilar.
Comprobar setup.py y actualizar las herramientas de compilación
Si el entorno es el correcto y el error persiste, revisa setup.py. Los proyectos que usan la importación antigua de distutils.core pueden pasar a setuptools: en setup.py, importa setup con from setuptools import setup y luego llámalo con los metadatos del proyecto, por ejemplo, setup(name="example-package", version="1.0"). Es una ilustración de configuración, no una compilación completa del proyecto. El paquete setuptools debe estar disponible en el mismo entorno; si hace falta, instálalo allí con python -m pip install setuptools.
Solo después de comprobar el intérprete y los paquetes instalados, considera actualizar las herramientas de compilación: python -m pip install --upgrade pip setuptools wheel. La actualización puede ayudar si el entorno está desactualizado o es incoherente, pero no corrige un comando ejecutado con otro Python. La opción setup_requires=['wheel'] no sustituye la reparación del entorno de compilación activo. Las herramientas de compilación de C++ para Windows son pertinentes cuando un paquete necesita compilación nativa; por sí solas, no proporcionan el comando bdist_wheel que falta.