GNU/Linux >> Tutoriels Linux >  >> Linux

Python - Aucun fichier ou répertoire de ce type, mais je peux le voir ! ?

J'essaie d'exécuter un script python sur un Raspberry PI sans tête à l'aide de winSCP et j'obtiens le message d'erreur suivant :

Command '"./areadetect_movie_21.py"'
failed with return code 127 and error message
/usr/bin/env: python
: No such file or directory.

Lorsque j'essaie de lancer depuis le terminal, j'obtiens :

: No such file or directory.

J'essaie un script python similaire, dans le même répertoire, avec le même shebang python, les mêmes autorisations et en utilisant le même utilisateur pi, et ça marche.

Je fais aussi un ls et je peux voir le fichier, donc je ne sais pas pourquoi il ne fonctionnera pas.

Réponse acceptée :

De AskUbuntu, réponse de Gilles :

Si vous voyez l'erreur ":Aucun fichier ou répertoire de ce type" (sans rien avant les deux-points), cela signifie que votre ligne shebang a un retour chariot à la fin, probablement parce qu'elle a été modifiée sous Windows (qui utilise CR, LF comme un séparateur de ligne). Le caractère CR fait revenir le curseur au début de la ligne après que le shell a imprimé le début du message et ainsi vous ne voyez que la partie après CR qui termine la chaîne d'interprétation qui fait partie du message d'erreur.

Supprimez le CR :la ligne shebang doit avoir une fin de ligne Unix (saut de ligne uniquement). Python lui-même autorise les fins de ligne CRLF, de sorte que les caractères CR sur les autres lignes ne nuisent pas. Les scripts shell, en revanche, doivent être exempts de caractères CR.

Pour supprimer les fins de ligne Windows, vous pouvez utiliser dos2unix :

sudo dos2unix /usr/local/bin/casperjs

ou sed :

sudo sed -i -e 's/r$//' /usr/local/bin/casperjs

Si vous devez éditer des scripts sous Windows, utilisez un éditeur qui gère les fins de ligne Unix (c'est-à-dire quelque chose de moins mort cérébral que le Bloc-notes) et assurez-vous qu'il est configuré pour écrire les fins de ligne Unix (c'est-à-dire LF uniquement) lors de l'édition d'un fichier Unix.


Linux
  1. Pourquoi Rm peut-il supprimer les fichiers en lecture seule ?

  2. Mkdir :impossible de créer un répertoire :aucun fichier ou répertoire de ce type ?

  3. Core dumpé, mais le fichier core n'est pas dans le répertoire courant ?

  4. Comment puis-je trouver un fichier/répertoire qui pourrait se trouver n'importe où sur la ligne de commande Linux ?

  5. Bash :Aucun fichier ou répertoire de ce type ?

Erreur fatale :cuda.h :aucun fichier ou répertoire de ce type

pip install pickle ne fonctionne pas - aucun fichier ou répertoire de ce type

incapable d'exécuter 'x86_64-conda_cos6-linux-gnu-gcc' :aucun fichier ou répertoire de ce type (installation pysam)

source conda désactiver :bash :désactiver :aucun fichier ou répertoire de ce type

touch :impossible de toucher `foo' :aucun fichier ou répertoire de ce type

/dev/sdb :aucun fichier ou répertoire de ce type (mais /dev/sdb1, etc. existe)