python - 无法使用 "#!/usr/bin/env python"将参数传递给 python

标签 python arguments shebang

我需要有一个直接可执行的 python 脚本,所以我用 #!/usr/bin/env python 启动了这个文件。但是,我还需要无缓冲输出,所以我尝试了 #!/usr/bin/env python -u,但是失败了 python -u: no such file or directory .

我发现 #/usr/bin/python -u 有效,但我需要它来获取 PATH 中的 python 到支持虚拟 env 环境。

我有什么选择?

最佳答案

在某些环境中,env 不会拆分参数。 所以你的环境正在你的路径中寻找 python -u 。 我们可以使用 sh 来解决。 用以下代码行替换您的 shebang,一切都会好起来的。

#!/bin/sh
''''exec python -u -- "$0" ${1+"$@"} # '''
# vi: syntax=python

附言我们不必担心 sh 的路径,对吧?

关于python - 无法使用 "#!/usr/bin/env python"将参数传递给 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3306518/

相关文章:

java - 如何使用 gradle test 将命令行参数传递给测试?

C : Pass Array of string as function argument

python - Pandas 嵌套循环,其中一行与特定值匹配

python - 当使用最小最大范围时,Django 对象过滤器收到一个简单的日期时间,而时区支持处于事件状态

python - 重音字符的问题

c++ 模板参数列表中参数 1 的类型/值不匹配

python-3.x - 使用 python filename.py 执行时没有名为 psutil 的模块,但与 shebang & chmod 完美配合

linux - 从任何(非特定)目录运行 shell 脚本

python - shebang 不适用于 python 脚本

python - for in 循环内的变量赋值