“Nenhum tal arquivo ou diretório”, mas o arquivo existe

3

Eu copiei alguns arquivos para o Ubuntu (rodando no VirtualBox). Tentando abrir os arquivos copiados e obter um erro. Não tenho certeza de como funciona o sistema de diretórios de arquivos, mas usei o comando cp para copiar um dos arquivos. É (e outros arquivos que foram copiados para a pasta manualmente) aparece na pasta correta com o comando ls. Mas quando tento executar o arquivo, recebo o seguinte erro:

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

Quando executo o comando ls /usr/bin/ , posso ver o arquivo varscore_pipeline , por isso não tenho certeza do que está errado.

    
por user126650 28.01.2013 / 02:21

2 respostas

4

varscore_pipeline é um script Python. Ele começa com uma linha shebang que aponta para o interpretador que deve executar o script. O caminho para o interpretador é usr/bin/python2.6 e esse arquivo não existe.

Primeiro, essa linha está errada. A linha shebang deve ter um caminho absoluto. Altere #!usr/bin/python2.6 para #!/usr/bin/python2.6 .

Dependendo da sua versão do Ubuntu, você pode ou não ter /usr/bin/python2.6 . Se você tiver apenas uma versão posterior, como 2.7, altere a linha shebang para #!/usr/bin/python2 . É altamente improvável que o programa funcione com 2.6, mas não com 2.7. As versões do Python 2.x são compatíveis para cima. (Mas não mude para /usr/bin/python3 , existem incompatibilidades entre o Python 2 e o Python 3.)

Consulte / bin / sh: ./check-dependencies.pl: não encontrado - mas existe o check-dependencies.pl! para mais explicações.

    
por Gilles 28.01.2013 / 02:34
0

Verifique se o arquivo em questão não possui caracteres CRLF (visíveis como ^ M em vi ), ou seja, seqüências de caracteres finais de linha no estilo DOS. Às vezes eles não são visíveis em vários terminais / editores, enquanto o bash tenta executar um script com interpretador como /bin/bash^M , que não existe, daí o erro.

    
por LetMeSOThat4U 08.01.2014 / 12:59