得知道,类似 #!/bin/python 或者 #! /usr/bin/env python 这样的声明具体是什么含义。这种声明是脚本语言的特性,Shell 脚本也会有这样的声明 #! /bin/bash。这种声明表示,如果在运行脚本时,没有明确指定解释器,那么就用这种声明所指定的解释器来运行。也就是说,如果我在文件头加入 #! /bin/python2,然后运行脚本的时候用 /bin/python3script.py来运行,实际上这个脚本我是用 python3 来运行,而只有当用 ./script.py 这样的方式直接运行脚本时才会使用声明的 python2 运行。
至于作为模块导入,第一行的声明 #!/bin/python 是没有意义的。至于回用到那个解释器,取决于主程序,例如在A.py中对B.py进行导入,然后在运行A.py,那么A.py,B.py的执行是用的执行A.py的解释器。所以在写库的时候这种解释器声明是没有必要的,只有当脚本需要在不明确指定解释器的情况下直接执行时才会有用!