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 env
ywhich python
ytype 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", entoncespython
no 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.sh
Resulté 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.exe
consigue vistos comoC:\Program
dadaFiles\Python\python.exe
como argumento.La mejor solución para esto, porque Windows AMA los espacios en el
$HOME
directorio y enProgram Files
otros lugares a pesar de que realmente puede romper cosas en cmd.exe y Powershell y otras herramientas, es:Instale Python
C:\Python
y agregue laC:\Python
carpeta dondepython.exe
vive y elScripts
directorio que vive dentro de él a suPATH
variable de entorno a nivel de sistema o usuario.Si necesita 2.7.x Python 3.x que coexisten, instalarlos en
C:\Python27
yC:\Python36
yC:\Python37
y cambiar el nombrepython.exe
depython2.exe
,python36.exe
,python37.exe
, etc y añadir cada una de estas carpetas y susScripts
carpetas 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.exe
para 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 somepackage
sintaxis. Los--user
valores 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