我正在使用 Python 2.7.6 和 Windows 8.1 ,我正在尝试使用os.sytem()
在子进程中更改路径以使用某些UNIX该行中的命令(使用MinGW / MSYS环境):
输入
>>> os.system(r'set PATH=%PATH%;C:\MinGW\msys\1.0\bin && set PATH && ls')
输出
Path=ALL_MY_OLD_PATHS;C:\MinGW\msys\1.0\bin
"ls" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.
1
我的意思是 ALL_MY_OLD_PATHS 到我系统中的所有目录,你可以看到 C:\ MinGW \ msys \ 1.0 \ bin 是正确的添加到我的路径,但是当它被执行时,“ls”命令是未知的。
我做错了什么?可能是因为时间延迟太小而无法用这个新的刷新PATH吗?我怎么能得到它?
答案 0 :(得分:1)
您确定ls
所在的目录没有拼写错误,即C:\MinGW\msys\1.0\bin
是否正确位置?
修改路径的更简单方法可能是os.putenv
:
os.putenv("PATH", r'%s;C:\MinGW\msys\1.0\bin' % os.getenv("PATH"))
然后您可以按正常方式使用os.system
,只需os.system("ls")
等。
您可能还想考虑切换到更强大的subprocess
module来调用外部命令。