Python sh导入导致PyDev中的Unresolved Import错误

时间:2013-06-26 21:11:18

标签: python eclipse shell pydev

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

from sh import curl, printenv, mkdir, cat

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

2 个答案:

答案 0 :(得分:2)

尝试使用subprocess module来调用控制台命令。例如:

from subprocess import call
dir_name = '/foo/bar/'
call('mkdir %s'%dir_name, shell=True)

答案 1 :(得分:1)

像比尔说的那样,子流程在这里是个不错的选择。我个人建议使用Popen,因为它不会阻塞,并允许您等待命令完成其communic()方法,该方法还返回stdout和stderr。另外,尽可能避免使用shell = True。用法:

import subprocess
testSubprocess = subprocess.Popen(['mkdir', dir_name], stdout=subprocess.PIPE)
testOut, testErr = testSubprocess.communicate()