Yo uso Bash en Windows, proporcionado por MSYS.
Intenté ejecutar un archivo Python con un shebang de #!/usr/bin/env python, pero recibo este mensaje de error:
/usr/bin/env: python: No such file or directory
¿Qué puedo hacer para que esto funcione?
Sé que puedo iniciar el archivo Python con un sufijo python, pero también quiero que funcione sin el sufijo.

env, como lo está haciendo el autor de la pregunta.which envywhich pythonytype python?Quizás te interese un lanzador de Python para Windows
fuente
Qué sucede cuando ejecutas (desde el shell):
..?
Si comienza una sesión interactiva de Python, se puede encontrar Python. (También puede simplemente ejecutar:)
type python. Si imprime "no existe tal archivo o directorio", entoncespythonno se encuentra en su RUTA. Vea si se puede ajustar lo siguiente para solucionar el problema (los espacios en la ruta / a / python probablemente causarán problemas):fuente
activate.shResulté ser un desajuste entre el archivo de Virtualenv y MSYSGIT. Nunca tuvo la intención de funcionar en Windows.fuente
Las últimas versiones de Windows 10 admiten la instalación de subsistemas de Linux. Si corre desde allí, las rutas deben ser correctas.
Debería ser una solución de trabajo si está de acuerdo con ejecutarlo de esa manera.
fuente
La raíz del problema es que los espacios en shebangs se interpretan como el suministro de argumentos adicionales a un archivo ejecutable, por lo
C:\Program Files\Python\python.execonsigue vistos comoC:\ProgramdadaFiles\Python\python.execomo argumento.La mejor solución para esto, porque Windows AMA los espacios en el
$HOMEdirectorio y enProgram Filesotros lugares a pesar de que realmente puede romper cosas en cmd.exe y Powershell y otras herramientas, es:Instale Python
C:\Pythony agregue laC:\Pythoncarpeta dondepython.exevive y elScriptsdirectorio que vive dentro de él a suPATHvariable de entorno a nivel de sistema o usuario.Si necesita 2.7.x Python 3.x que coexisten, instalarlos en
C:\Python27yC:\Python36yC:\Python37y cambiar el nombrepython.exedepython2.exe,python36.exe,python37.exe, etc y añadir cada una de estas carpetas y susScriptscarpetas en elPATH. Es posible que desee determinar cuál de las versiones de Python 3 desea que sea la "predeterminada" y también hacer una copia en esa carpetapython3.exepara manejar cualquier script que use!#/usr/bin/env python3.Si su directorio de inicio de usuario tiene un espacio, también puede experimentar problemas si utiliza la
pip install --user somepackagesintaxis. Los--uservalores predeterminados de su directorio de inicio, y el espacio también se dispararán las cosas en este caso. La solución se describe aquí, pero se reduce a exportar PYTHONUSERBASE a su entorno.o en Windows (Powershell):
fuente