3
我有一個運行lessc
一個函數(npm install -g less
安裝):的Windows subprocess.Popen無殼的批處理文件=真
>>> import subprocess
>>> subprocess.Popen(['lessc'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\subprocess.py", line 679, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 896, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
不幸的是,這是行不通的,除非我添加shell=True
:
>>> subprocess.Popen(['lessc'], shell=True)
<subprocess.Popen object at 0x01F619D0>
我能做些什麼來使lessc
在不使用shell=True
的情況下運行?
你可以在不使用'shell = True'的情況下顯式調用二進制文件的完整路徑名嗎? – kragniz 2013-04-22 00:09:02
@kragniz:'lessc'是一個批處理文件(實際上可能是問題),當我用完整路徑運行它時會發生相同的錯誤。 – Blender 2013-04-22 00:11:39
是由子進程模塊自身還是由批處理腳本生成的錯誤?您可以在Popen上添加'cwd = r'c:\ path \ to \ script \'參數 – JBernardo 2013-04-22 00:21:59