/ usr / bin / env:’python3 \ r’:没有这样的文件或目录
我正在尝试使我的.py
文件可执行,因此我可以使用./filename.py
运行它们,但它不适用于我。
我做的是添加shebang #!/usr/bin python3
并使用命令chmod +x filename.py
。 当我以普通用户身份运行./filename.py
,我收到以下错误消息
bash: ./filename.py: /usr/bin: bad interpreter: Permission denied
作为超级用户,它告诉我这个:
sudo: unable to execute ./filename.py: Permission denied
打开文件通常的方法( python3 filename.py
)它工作正常。
当我将shebang改为#!/usr/bin/env python3
它告诉我:
/usr/bin/env: 'python3\r': No such file or directory
问题是你的行结束字符。 您的文件是在Windows系统上创建或编辑的,并使用Windows / DOS样式的行结尾(CR + LF),而像Ubuntu这样的Linux系统需要Unix样式的行结尾(LF)。
有一个简单的工具可以为你转换两种不同的样式,称为dos2unix
。
通过运行安装它
sudo apt install dos2unix
之后,您可以使用其中一个命令在任一方向转换文件
dos2unix /PATH/TO/YOUR/WINDOWS_FILE unix2dos /PATH/TO/YOUR/LINUX_FILE
例:
$ cat test.py #!/usr/bin/env python3 print("ok") $ ./test.py /usr/bin/env: 'python3\r': No such file or directory $ dos2unix test.py dos2unix: converting file test.py to Unix format ... $ ./test.py ok
还要回到你先尝试的那个,shebang线
#!/usr/bin python3
当然是错的。 它尝试使用python3
和脚本的文件名作为参数执行文件/usr/bin
。 这肯定会失败,因为/usr/bin
是一个目录而没有可执行文件。