colab 出现 bad interpreter: Permission denied

1年前 ⋅ 627 阅读

很多小伙伴跟我一样是在使用colab的过程中,会遇到一些问题,比如说这次的直接在colab上运行sh代码,调用一个python程序,而该python文件使用了另一个python程序(这两个都是自己写的代码),于是出现一个文件权限问题:py: /usr/bin/env: bad interpreter: Permission denied,拒绝权限。 那么既然知道了是拒绝权限问题,我们就应该对症下药,从权限的角度去解决他,既然没有权限,那么我们就应该给它权限。在这里权限是给某个文件(具体来说是给某个python文件或者sh文件的)的,我们需要仔细观察是哪个文件没有权限,比如我这里的错误信息如下:

./preprocess.sh: ./data_to_json.sh: /usr/bin/env: bad interpreter: Permission denied
./preprocess.sh: ./preprocess.sh: /usr/bin/env: bad interpreter: Permission denied

我们大致能从中知道,./preprocess.sh:和 ./data_to_json.sh中有两个或者一个没有权限,由于是preprocess.sh调用了data_to_json.sh里面的代码,那先给data_to_json.sh权限,赋予权限的代码如下:

!chmod 755 -R preprocess/data_to_json.sh #'preprocess/data_to_json.sh'是data_to_json.sh相对于当前命令所在文件的相对路径,改成你自己的即可

如果理解上面注释的意思,请直接修改代码并执行即可,然后跳过该部分直接看下面内容。这里我的文件夹路径和命令关系如下图: 1668222244793.jpg 蓝色画框部分表示多了一个文件夹路径,正好对应preprocess部分,如果是多个路径,直接添加相应的路径即可。 接下来继续看这,如果还有权限问题,将剩余文件赋予权限即可。 1668223034042(1).jpg