I needed to have a directly executable python script, so i started the file with #!/usr/bin/env python
. However, I also need unbuffered output, so i tried #!/usr/bin/env python -u
, but that fails with python -u: no such file or directory
.
I found out that #/usr/bin/python -u
works, but I need it to get the python
in PATH
to support virtual env
environments.
What are my options?
In some environment, env doesn't split arguments.
So your env is looking for python -u
in your path.
We can use sh to work around.
Replace your shebang with the following code lines and everything will be fine.
#!/bin/sh
''''exec python -u -- "$0" ${1+"$@"} # '''
# vi: syntax=python
p.s. we need not worry about the path to sh, right?