2024-04-19 19:24:44 发布
网友
我需要一个直接可执行的python脚本,所以我用#!/usr/bin/env python启动了这个文件。但是,我也需要无缓冲的输出,所以我尝试了#!/usr/bin/env python -u,但是在python -u: no such file or directory中失败了。
#!/usr/bin/env python
#!/usr/bin/env python -u
python -u: no such file or directory
我发现#/usr/bin/python -u可以工作,但我需要它来获得PATH中的python来支持虚拟env环境。
#/usr/bin/python -u
PATH
python
env
我有什么选择?
在Linux上使用shebang时,解释器名称后面的整个行都被解释为一个参数。将python -u传递给env,就像键入了:/usr/bin/env 'python -u'。/usr/bin/env搜索一个名为python -u的二进制文件,但没有。
python -u
/usr/bin/env 'python -u'
/usr/bin/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
我们不用担心去上海的路,对吧?
在Linux上使用shebang时,解释器名称后面的整个行都被解释为一个参数。将
python -u
传递给env
,就像键入了:/usr/bin/env 'python -u'
。/usr/bin/env
搜索一个名为python -u
的二进制文件,但没有。最好使用环境变量来启用它。见python文档:http://docs.python.org/2/using/cmdline.html
对于您的情况:
在某些环境中,env不分割参数。 所以您的env正在您的路径中寻找
python -u
。 我们可以用sh来解决问题。 用下面的代码行替换shebang,一切都会好起来的。我们不用担心去上海的路,对吧?
相关问题 更多 >
编程相关推荐