【发布时间】:2014-11-04 18:37:31
【问题描述】:
我正在尝试找出一种在 Windows 机器上从我的 python 脚本调用 wget 的方法。我在机器上的 /bin 下安装了 wget。无论我尝试什么,使用 subprocess 或 os 模块进行调用似乎都会引发错误。我假设这与我需要通过 minGW 路由我的 python 系统调用以便识别 wget 的事实有关。
有人知道怎么处理吗?
谢谢
【问题讨论】:
-
确保可以先在 cmd.exe 中运行。您可以使用 wget 的完整路径或将 /bin 附加到环境变量 PATH。
-
向我们展示您尝试过的代码。如果您使用
shell=True,您是否尝试过不使用它?或者将COMSPEC环境变量设置为MinGW shell 而不是默认的cmd.exe? -
当我在 mingw 中执行 'echo $PATH' 时,我发现 /bin 在环境路径中。我知道 mingw 识别 'wget' 但 Windows 中的命令提示符没有。因此,我的 python 也不行。我尝试将 \bin 添加到 Windows 路径变量,但它似乎不起作用。我使用了'setx path "%path%;\bin"'。更改显示在路径中,但命令提示符仍然无法识别“wget”或“wget.exe”。此外,一般来说,我似乎无法通过命令提示符导航到 \bin,而在 mingw 中我可以。对此有什么想法吗?
-
我可以从 python 中执行“调用(“cmd.exe”)”并打开命令提示符。当我从 python 执行“call("cmd.exe",shell=True)' 时,我发现某些东西在 IDLE 中运行了一分钟,然后什么也没有,没有命令提示符出现。
标签: python windows wget system-calls mingw32