我有一个测试脚本,例如“test.py”,我想让它在脚本开始之前使用特定的环境变量集执行:
#!/usr/bin/env TEST=anything python
print "Hello, world."
运行它通常按预期工作:
$ python test.py
Hello, world.
但是,如果我将其作为程序运行:
$ chmod +x test.py
$ ./test.py
该字符串从不打印,而是执行停止,“top”报告一个名为“test.py”的进程正在使用 100% CPU。
这只发生在我的 Ubuntu 机器上,在 OS X 上似乎没问题。
原因是最终我想通过设置使特定脚本始终在 32 位 Python 中运行:
#!/usr/bin/env VERSIONER_PYTHON_PREFER_32_BIT=yes python
在文件的顶部。但是,如果这意味着脚本不会在 Linux 机器上执行,那就不行了。我发现无论调用什么指定的环境变量都会产生类似的效果。但是,如果没有设置环境变量:
#!/usr/bin/env python
print "Hello, world."
脚本运行得很好:
$ ./test.py
Hello, world.
这是 Python 或 中的错误env
,还是我做错了什么?