我将一些文件复制到 Ubuntu(在 VirtualBox 上运行)。尝试打开所述复制的文件并收到错误。我不太清楚文件目录系统如何工作,但我使用cp
命令复制了其中一个文件。使用 ls 命令,Is(以及刚刚手动复制到文件夹中的其他文件)显示在正确的文件夹中。但是当我尝试执行该文件时,出现以下错误:
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
,所以我不确定出了什么问题。
答案1
varscore_pipeline
是一个 Python 脚本。它以舍邦指向必须执行脚本的解释器的行。解释器的路径是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:未找到 — 但 check-dependencies.pl 存在!了解更多解释。
答案2
检查相关文件是否没有 CRLF 字符(在 中显示为 ^M vi
),即 DOS 样式的行结束字符序列。有时它们在各种终端/编辑器中不可见,而 bash 尝试使用不存在的解释器(如 )运行脚本/bin/bash^M
,因此会出现错误。