1

我在 python 2.7.5 中使用 sh 来调用 shell 程序,比如curland mkdir,但是在 Eclipse 4.3.0 下的 PyDev 插件 2.7.5 中。以下行给出Unresolved Import错误:

from sh import curl, printenv, mkdir, cat

我可以在 python shell 中运行上面的代码。我确实有sh包含在“首选项”窗口的Libraries窗格中的路径Interpreter - Python,所以我认为这不是问题。

4

2 回答 2

2

尝试使用subprocess 模块调用控制台命令。例如:

from subprocess import call
dir_name = '/foo/bar/'
call('mkdir %s'%dir_name, shell=True)
于 2013-06-26T21:14:28.357 回答
1

就像比尔说的,子流程在这里是一个不错的选择。我个人建议使用 Popen,因为它不会阻塞,并且允许您使用它的通信()方法等待命令完成,该方法还返回标准输出和标准错误。此外,尽可能避免使用 shell=True。用法:

import subprocess
testSubprocess = subprocess.Popen(['mkdir', dir_name], stdout=subprocess.PIPE)
testOut, testErr = testSubprocess.communicate()
于 2013-06-26T21:23:07.100 回答