我目前有一个脚本正在被自带Python解释器附带的程序执行。 该版本不包含我需要的库,因此我使用os.exec对本地安装的2.7实例执行第二个脚本。执行来自不同实例的另一个Python实例
然而,第二个脚本,当手动执行,完美工作,并没有定义PYTHONPATH。如果我在执行包装器时以及第二个脚本被加载时记录PYTHONPATH的输出,它们都将PYTHONPATH初始化为原始解释器,这恰好也是2.6实例。 这显然导致我相信我有一些我没有预料到的环境变量被传递,另外在另外两个系统上,这个设置按预期工作100%,而在这个系统中,这种行为正在发生。 有没有更清晰的方法可以创建一个包装来调用第二个脚本?如果不是,我怎么能避免这种不必要的env变量传递。
为什么你打包一个不适合你需求的Python解释器?如果你不得不依赖预装的Python版本,那么在你的包中包含一个Python解释器似乎没有意义。 – 2012-01-14 15:42:53
我还没有创建原始程序,因此无法控制所包含的版本。这只是扩展功能所需的一项工作 – Draineh 2012-01-14 15:50:35
您是否尝试过使用'os.execle'来显式传递所需的环境变量? – unutbu 2012-01-14 16:06:20