Ubuntuにいくつかのファイルをコピーしました(VirtualBoxで実行)。上記のコピーされたファイルを開こうとしてエラーが発生します。ファイルディレクトリシステムがどのように機能するかはよくわかりませんが、cp
コマンドを使用してファイルの1つをコピーしました。 Is(および手動でフォルダーにコピーされたばかりのその他のファイル)は、lsコマンドを使用して正しいフォルダーに表示されます。しかし、ファイルを実行しようとすると、次のエラーが表示されます。
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
ls /usr/bin/
コマンドを実行すると、そこにファイルvarscore_pipeline
が表示されるため、何が間違っているのかわかりません。
varscore_pipeline
はPythonスクリプトです。スクリプトを実行する必要があるインタープリターを指す Shebang 行で始まります。インタープリターへのパスはusr/bin/python2.6
であり、このファイルは存在しません。
まず、その行は間違っています。 Shebangラインには絶対パスが必要です。 #!usr/bin/python2.6
を#!/usr/bin/python2.6
に変更します。
Ubuntuのバージョンによって、/usr/bin/python2.6
がある場合とない場合があります。 2.7などの新しいバージョンのみを使用している場合は、Shebang行を#!/usr/bin/python2
に変更します。プログラムが2.6では動作するが2.7では動作しない可能性は非常に低いです。 Python 2.xバージョンには上位互換性があります。 (ただし、/usr/bin/python3
に変更しないでください。Python 2とPython 3.の間には互換性がありません。)
/ bin/sh:./check-dependencies.pl:not found — but check-dependencies.pl exists! を参照してください。
問題のファイルにCRLF文字(vi
の^ Mとして表示)、つまりDOSスタイルの行末文字シーケンスがないかどうかを確認します。 bashは/bin/bash^M
などのインタープリターを使用してスクリプトを実行しようとしますが、存在しないため、エラーが発生します。