【问题标题】:Python does not allow additional comment with env pythonPython 不允许对 env python 进行附加注释
【发布时间】:2017-11-03 22:03:17
【问题描述】:

我在 python 中有一个注释行问题。我用 vim 创建了一个ages.py,这是我的脚本

#!/usr/bin/env python
ages={"dad":42, "mom":35, "lisa":7}
for item in ages:
        print item

当我在!/usr/bin 上方添加评论时,比如

# this is a python script
#!/usr/bin/env python
ages={"dad":42, "mom":35, "lisa":7}
for item in ages:
        print item

在我回到包含相同脚本的目录后,运行脚本并写入终端ages.py,但我收到此错误

$ ./ages.py
./ages.py: line 3: mom:35,: command not found
./ages.py: line 5: syntax error near unexpected token `print'
./ages.py: line 5: 'print item'

我知道当我删除 #!/usr/bin/env python 行时,# 非常适合评论。但是,我想添加这一行来运行脚本,只写它的名字来提示。否则,我必须每次都写python ages.py 来运行它,我认为这是一种负担。

第一个问题:我如何在.py 脚本仍然有 '#!/usr/bin/env python' 行的情况下发表评论

P.S:"""'''在评论前后都试过了,还是不行。

第二问:有没有办法在 python 环境中运行.py 脚本?例如,我可以在八度音程中运行.m 文件,只需将其名称写入命令行即可。但是我不知道python中是否有相同的方法?

P.S:我知道这些问题很简单,值得 -1,但是,对于新的 python 用户,所有答案都将提供很好的信息,谢谢大家。这是一个非常微妙的解决方案,但没有它,我经常会遇到错误

【问题讨论】:

  • 只需将您的 cmets 放在 #!/usr/bin/env python 行之后
  • 谢谢,简单的解决方案效果很好
  • FWIW,这些错误的发生是因为没有适当的 shebang 作为第一行,你的 shell 假定脚本是一个普通的 shell 脚本,所以它试图将它解释为一个 sh 或 bash 脚本。

标签: python python-2.7 comments


【解决方案1】:

第一行非常重要。它被称为 Hashbang,有时也被称为 shebang。它告诉操作系统使用什么解释器来执行脚本。当使用shebang时,它必须是第一行。其他变体包括

#!/bin/sh
#!/usr/bin/perl/
#!/usr/bin/python

这些用于系统默认的 sh、perl 和 python。代码中的任何其他 cmets 都必须在此行之后。

【讨论】:

    【解决方案2】:
    1. 包含#!/usr/bin/env python的行必须在前,你可以在下面添加你的cmets;

    2. 是的,您可以这样做:exec(open('yourscript.py').read()) - 但是,结果有时可能与您的预期不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-02
      • 1970-01-01
      相关资源
      最近更新 更多