Python 코드에서 제 3 자 실행 파일을 관리하는 동안 이상한 동작이 있습니다.Windows cmd line과 python에서 호출하는 명령의 차이점
import subprocess
p = subprocess.Popen([r'c:\path\to\programme.exe', '-d'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
print p.returncode, out, err
그리고 out
의 역 추적에 표시하고, "처리되지 않은 예외"를 의미하는 오류 코드를 반환 도구의 충돌 : 개념적으로 파이썬에서 다음과 같은 코드가 있습니다. 나는 동일한 결과를 가진 간단한 os.system(...)
으로 시도했다. 창문 쉘에 난 그냥 명령을 붙여 넣을 때
는하지만, 여기
C:\> c:\path\to\programme.exe -d
파이썬 인터프리터는 32 비트 2.7.2 버전입니다 ... 그것은 완벽하게 작동, 재미있는 부분을 온다.
그래서 ... 충돌로 이어지는 두 가지 호출의 차이점은 무엇입니까? 미리 감사드립니다.
추가 정보를 원하시면이 도움이 있지만, 외부 도구는 데이터베이스에 연결하고 일부 작업을 수행하는 경우 내가 아주 확실하지 않다
. 일부 RDBMS에서는 파이썬 코드에서 호출 할 때 작동하지만 Oracle DB에 연결하면 충돌합니다. 그래서 파이썬 코드가 옳은 것 같습니다. 모르는 요소 나 차이가 있습니다.
나는 폐회표에 대한 설명을 부탁드립니다. – bgusach
테스트 할만한 일반적인 것들 : IO (stdin being closed), evnironment.가장 쉬운 테스트는 cmd 내에서 (대화식으로) Python을 시작하고 동일한 코드를 실행하는 것입니다. –
이미 REPL에서 명령을 실행하려고 시도했지만 작동하지 않습니다. x64/x86 차이가있을 수 있습니까? 나는 그다지 잘하지 않습니다. 고마워. – bgusach