web-dev-qa-db-fra.com

"Aucun fichier ou répertoire de ce type", mais le fichier existe

J'ai copié certains fichiers sur Ubuntu (fonctionnant sur VirtualBox). Essayer d'ouvrir les fichiers copiés et obtenir une erreur. Je ne sais pas trop comment fonctionne le système de répertoires de fichiers, mais j'ai utilisé la commande cp pour copier l'un des fichiers. Est (et les autres fichiers qui ont été copiés manuellement dans le dossier) apparaît dans le bon dossier avec la commande ls. Mais lorsque j'essaie d'exécuter le fichier, j'obtiens l'erreur suivante:

qiime@qiime-VirtualBox:~$ usr/bin/varscore_pipeline -bo Desktop/Shared_Folder/VARSCORE/C_albicans.fasta Desktop/Shared_Folder/VARSCORE/tmp/poo.csv
bash: usr/bin/varscore_pipeline: usr/bin/python2.6: bad interpreter: No such file or directory

Lorsque j'exécute la commande ls /usr/bin/, je peux voir le fichier varscore_pipeline dedans. Je ne suis donc pas sûr de ce qui ne va pas.

3
user126650

varscore_pipeline est un script Python. Il commence par une ligne Shebang qui pointe vers l'interprète qui doit exécuter le script. Le chemin d'accès à l'interpréteur est usr/bin/python2.6 et ce fichier n'existe pas.

Tout d'abord, cette ligne est fausse. La ligne Shebang doit avoir un chemin absolu. Remplacez #!usr/bin/python2.6 par #!/usr/bin/python2.6.

Selon votre version d'Ubuntu, vous pouvez ou non avoir /usr/bin/python2.6. Si vous ne disposez que d'une version ultérieure telle que 2.7, modifiez la ligne Shebang en #!/usr/bin/python2. Il est hautement improbable que le programme fonctionne avec les versions 2.6 mais pas 2.7. Python Les versions 2.x sont compatibles vers le haut. (Mais ne changez pas en /usr/bin/python3, il y a des incompatibilités entre Python 2 et Python 3.)

Voir / bin/sh: ./check-dependencies.pl: non trouvé - mais check-dependencies.pl existe! pour plus d'explications.

4
Gilles

Vérifiez si le fichier en question n'a pas de caractères CRLF (visibles sous la forme ^ M dans vi), c'est-à-dire des séquences de caractères de fin de ligne de style DOS. Parfois, ils ne sont pas visibles dans différents terminaux/éditeurs, alors que bash essaie d'exécuter un script avec un interpréteur tel que /bin/bash^M, qui n'existe pas, d'où l'erreur.

0
LetMeSOThat4U