由于某些需要,我被迫更正os.environ['PATH']
以能够运行dir\to\fake\python.cmd
脚本,该脚本在执行之前向原始参数添加了一些额外的参数。
我还有两个 python 脚本:
测试1.py:
# ...
p = subprocess.call("test2.py") # shell=True works fine
# ...
测试2.py:
# ...
print "Hello from test2.py"
# ...
当我运行python test1.py
我的“假”python.cmd
做它的东西时,指的是原始 pythonc:\Python25
并test1.py
使用我的额外参数运行。但是,遗憾的test2.py
是,脚本从未被调用。如果我把shell=True
作为subprocess.call
论点 - 一切都很好,test2.py
被称为。
我知道,默认情况下,Windows 正在尝试在实际c:\Python25
工作目录中找到用于调用的 python 解释器。shell=False
对您的问题是:如何在不更改test1.py
and 中的代码的情况下实现目标test2.py
?也许virtualenv
图书馆在这种情况下可能非常有用?
非常感谢您的帮助