我正在尝试学习一些Python3,因此,首先要做的是:Hello World。但是就这么简单,我在Shebang参考资料的第1行上度过了一段糟糕的时光。我在运行Mac Os 10.15.3的笔记本电脑上创建以下脚本
#!/usr/bin/env python3
print('Hello World')
我将其另存为python_test-01.py,使脚本可执行,然后尝试运行它。
Emonda:Scripts paul$ chmod 755 python_test-01.py
Emonda:Scripts paul$ ls -l
-rwxr-xr-x@ 1 paul staff 47 Mar 5 13:07 python_test-01.py
Emonda:Scripts paul$ ./python_test-01.py
./python_test-01.py: line 1: #!/usr/bin/env: No such file or directory
./python_test-01.py: line 2: syntax error near unexpected token `'Hello World''
./python_test-01.py: line 2: `print('Hello World')'
嗯。找不到环境。好的,我将在shebang行中使用直接路径而不是env。我编辑脚本以阅读
#!/usr/bin/python3
print('Hello World')
并运行它
Emonda:Scripts paul$ ./python_test-01.py
./python_test-01.py: line 1: #!/usr/bin/python3: No such file or directory
./python_test-01.py: line 2: syntax error near unexpected token `'Hello World''
./python_test-01.py: line 2: `print('Hello World')'
现在它也找不到Python3。因此,我环顾四周以确保确实安装了env和python3以及它们的位置。
Emonda:Scripts paul$ cd /usr/bin/
Emonda:bin paul$ pwd
/usr/bin
Emonda:bin paul$ whereis env
/usr/bin/env
Emonda:bin paul$ whereis python3
/usr/bin/python3
是的,就在那里,就在我说过他们将在Shebang线上的位置。 / usr / bin /
第二章
一遍又一遍地尝试之后,我决定尝试一些不同的尝试。我转向运行Debian GNU / Linux的Raspberry Pi。我注意到,它的/ usr / bin /目录中也安装了Python3版本。我使用vim编写了以相同的shebang开头的相同的两行脚本:#!/ usr / bin / python3。 Chmod755。“ Hello World”。第一次尝试即可。
这两个系统之间有何不同?一切都在Raspberry Pi中按预期进行。 Mac怎么了?我应该在Mac上哪里寻找解释程序找不到Python3的原因?
感谢衰老与我同在, 保罗
答案 0 :(得分:0)
经过所有这些以及您所有的出色输入,事实证明MacOs系统上的脚本文件已使用BOM保存为UTF-8。这足以使脚本的第一行“ Shebang”对口译员来说是难以辨认的。将文件保存为UTF-8 no BOM编码后,它可以按预期工作。