usar tipos lista funciones ejecutar desde consola compilar como archivo python hashbang

tipos - lista de funciones de python



La secuencia de comandos de Python da `: No hay tal archivo o directorio` (4)

De los comentarios anteriores parece que tienes dos terminaciones de línea, por lo que la línea hashbang no se procesa correctamente.

El estilo de final de línea no se muestra con :set list in Vim porque esa opción solo se usa al leer / escribir el archivo. En la memoria, los finales de línea son siempre eso, finales de línea. El estilo de terminación de línea utilizado para un archivo se mantiene en una opción de Vim por archivo, extrañamente llamada fileformat .

Para ver / cambiar el estilo de final de línea de Vim, puede usar los siguientes comandos:

:set fileformat :set ff

Mostrará dos o unix . Quieres unix , por supuesto ;-).

Para cambiarlo rápidamente, puede guardar el archivo con:

:w ++ff=unix

O si lo prefiere:

:set ff=unix

Y luego guarda el archivo normalmente.

Así que vea todos los detalles sangrientos que acaba de hacer :help fileformat :help file-formats y :help fileformats

Tengo varios scripts de Python que funcionan bien, pero un script (a partir de esta mañana) comenzó a darme este error si intento ejecutarlo desde el bash:

: El fichero o directorio no existe

Puedo ejecutar el script "roto" haciendo python script_name.py y después de mirar un poco la idea general que recogí fue que tal vez mi terminación de línea del hashbang cambió (silenciosamente), así que miré la línea que termina de un guión de trabajo y un guión roto a través de la opción :set list en VI como se indica en esta pregunta -> Ver terminaciones de línea en un archivo de texto

Parece que ambos archivos terminan usando el mismo caracter (a $ ), así que no entiendo cómo proceder desde aquí. Específicamente, cómo "ver" realmente la línea que termina en caso de que la set list no sea el método correcto.

PD: El guión es ejecutable y el shebang está ahí, dije que es solo este 1 guión que funcionaba bien antes del fin de semana, pero comenzó a darme este error a partir de esta mañana.

- editar: -

Ejecutar el script a través de dos2unix hace que funcione de nuevo, pero me gustaría saber de alguna manera para visualizar la línea que termina de alguna manera en VI (M) o por qué Geany de alguna manera convirtió las terminaciones de línea en primer lugar (ya que nunca trabajo en dos / sistema de windows de todos modos).


Me encontré con este problema editando mi código en Windows, registrándolo con git, y comprobándolo y ejecutándolo en Linux.

Mi solución fue: decirle a Git que haga lo correcto. Emití este comando en el cuadro de Windows:

git config --global core.autocrlf true

Modificó los archivos y los registró; voila, ya no hay problema.

Como se discutió en la documentación de Git .


Personalmente, me parece un poco incorrecto usar la ruta directa al intérprete de Python. Como no utiliza la plataforma de Windows, debe tener el programa env, generalmente en / usr / bin (/ usr / bin / env). Intenta usar siguiente shebang:

#!/usr/bin/env python

Distintas distribuciones almacenan el binario de python en / bin o / usr / bin (o en algunas ubicaciones raras), y este hace que su script sea independiente de los config (en la medida de lo posible, aquí tenemos la posibilidad de que env se almacene en otro lugar; es posible que env no esté en / usr / bin que ese python esté mal ubicado).

Tenía un problema similar (si no exactamente lo mismo) y eso funcionó para mí.

Además, tengo instalados los dos intérpretes de Python (2.7.x y 3.x), así que necesito usar el argumento "python3" para env. Generalmente, las distribuciones de AFAIR vinculan nombres diferentes a binarios diferentes, por lo que "env python" ejecutará python2.7 en mi sistema, "env python3" (también python33, o smth así) ejecutará p3k, y "env python2" (también python27, etc.) ejecutará python 2.7.x. También es una buena idea declarar qué versión de intérprete se debe usar.


También puede usar el comando dos2unix para convertir el formato de archivo

dos2unix

Esto me ayudó a ejecutar los scripts de Python

Esto normalmente sucede cuando abrimos archivos en Windows hacemos cambios y lo guardamos. si abre el archivo, ubique los ^ ^ caracteres al final de cada línea

Gracias