给定一组蟒程序:如何用适当的python版本启动python程序?
/tool/a.py
/tool/b.py
/tool/c.py
/tool/d.py
...
存储在共享的网络目录,在混合环境中执行(Solaris和Linux的不同口味),并且所有需要特定蟒版本可能不在用户$ PATH中,并且可能不安装在不同类型机器的相同位置。
程序如何指定要使用的Python解释器?
替代我已经考虑:
在每个Python程序认领,裁判到启动当前类型的机器的适当python解释一个python包装。但是execve不允许将包装器可执行文件作为shell脚本来实现,并且为每台机器编译本机可执行文件都需要大量的维护。
为每个python程序创建一个启动shell脚本。所有的shell脚本可以共享相同的逻辑来选择python解释器,但是我希望避免为每个python程序分配一个shell脚本(如果可能的话)。
制造某种黑客攻击,使每个程序可能都既作为一个shell脚本和Python程序,类似于运行:
"""exec" /tool/python_wrapper "$0" "[email protected]" """#" def foo(): print "foo" foo()
你有一些其他的想法?