Hace poco instalé WSL desde la tienda de Windows y ahora tengo algunos problemas con python.
Ya tengo python y algunas de sus bibliotecas instaladas en mi Windows 10, pero cada vez que escribo py
en la terminal de Ubuntu no lo entiende, solo entiende cuando tecleo “python3”. ¿Hay alguna manera de agregar el py
comando para activar python?
También en el modo interactivo ($python3 -i
), siempre que intento import
cualquier biblioteca (es decir, numpy) arroja un error (ModuleNotFoundError: No module named 'numpy'
) mientras que ya tengo numpy instalado en mi Windows.
¡Es como si WSL estuviera actuando como si ni siquiera pudiera ver python y sus bibliotecas instaladas en mi Windows!
una imagen de mi WSL luchando
Respuesta aceptada:
Como se explica en Subsistema de Windows para la interoperabilidad de Linux con Windows, hay algunas condiciones que deben cumplirse para poder ejecutar programas de Windows desde la línea de comandos de WSL:
Ejecutar herramientas de Windows desde WSL
WSL puede invocar archivos binarios de Windows directamente desde la línea de comando de WSL
usando [nombre binario].exe. Por ejemplo, notepad.exe. Para que los ejecutables de Windows
sean más fáciles de ejecutar, la ruta de Windows se incluye en $PATH
de Linux en Fall Creators Update.
Se omitieron algunas cosas irrelevantes
Los archivos binarios de Windows deben incluir la extensión del archivo, coincidir con las mayúsculas y minúsculas del archivo,
y ser ejecutables. No ejecutables, incluidos los scripts por lotes. Los comandos nativos de CMD
como dir se pueden ejecutar con el comando cmd.exe /C.
Entonces, si su versión de Windows de python3 es un ejecutable regular, debería poder ejecutarlo como
python3.exe
De lo contrario (aparentemente, esto incluye la versión de python3 instalada en WindowsApps desde la tienda de Microsoft), deberá usar
cmd.exe /C python3.exe