“#!/ usr / bin / env python”无法将参数传递给python
我需要一个直接可执行的python脚本,所以我用#!/usr/bin/env python
启动了这个文件。 但是,我也需要无缓冲的输出,所以我试过#!/usr/bin/env python -u
,但是失败时使用python -u: no such file or directory
。
我发现#/usr/bin/python -u
可以工作,但我需要它来获取PATH
的python
以支持虚拟env
环境。
我有什么选择?
最好使用环境变量来启用它。 请参阅python文档:http://docs.python.org/2/using/cmdline.html
为你的情况:
export PYTHONUNBUFFERED=1
script.py
在某些环境中,env不会分裂参数。 所以你的env在你的路径中寻找“python -u”。 我们可以用sh来解决问题。 用下面的代码行替换你的shebang,一切都会好的。
#!/bin/sh
''''exec python -u -- "$0" ${1+"$@"} # '''
# vi: syntax=python
我们不必担心路径,对吧?
将参数传递给shebang行不是标准的,因为你已经试验过,在Linux中不能与env结合使用。 bash的解决方案是使用内置命令“set”来设置所需的选项。 我想你也可以用python命令设置stdin的无缓冲输出。
MY2C
链接地址: http://www.djcxy.com/p/46405.html上一篇: Cannot pass an argument to python with "#!/usr/bin/env python"