“#!/ 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可以工作,但我需要它来获取PATHpython以支持虚拟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"

下一篇: Python deployment and /usr/bin/env portability