2013-06-26 3 views
1

나는 파이썬 2.7.5에서 sh를 사용하여 curlmkdir과 같은 쉘 프로그램을 호출하지만 Eclipse 4.3.0에서는 PyDev 플러그인 2.7.5에서 사용합니다.Python sh 임포트로 인해 PyDev에서 가져 오기 오류가 발생했습니다

from sh import curl, printenv, mkdir, cat 

내가 파이썬 쉘에서 위의 코드를 실행할 수있어 다음 행은 Unresolved Import 오류가 있습니다. 환경 설정의 경로가 Libraries 창에 포함되어 있습니다 (환경 설정의 Interpreter - Python 창에 있음). 문제가 아닌 것 같습니다.

답변

2

subprocess module을 사용하여 콘솔 명령을 호출 해보십시오. 예를 들어 :

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

sh 가져 오기를 올바르게 인식하지 못하는 경우이 방법을 사용할 것입니다. 감사! –

1

빌 말했듯이, 서브 프로세스는 여기에 좋은 선택이 될 것입니다. 개인적으로 Popen을 사용하지 않는 것이 좋습니다. 왜냐하면 차단하지 않기 때문에 stdout과 stderr를 반환하는 해당 communications() 메서드를 사용하여 명령을 완료 할 때까지 기다릴 수 있습니다. 또한 가능한 경우 shell = True를 사용하지 마십시오. 사용법 :

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