2014-10-01 4 views
8

pip는 pypi 웹 사이트에서이 모듈뿐만 아니라 나를 찾을 수 없습니다. 비밀을 알려주시겠습니까? 설치 방법은 무엇입니까?파이썬 용 서브 프로세스 모듈을 설치하는 방법은 무엇입니까?

subprocess.call을 통해 새 셸 프로세스를 생성하려면 모듈이 필요합니다. 사람들이 import subprocess을 사용하는 많은 예제를 보았지만 아무도 설치 방법을 보여주지 못했습니다.

오류, 내가 가진 것을 (다만 만일 내가 내 마음을 잃었다과에 무슨 일이 일어나고 있는지 이해하지 못하는) :

Microsoft Windows [Version 6.3.9600] 
(c) 2013 Microsoft Corporation. All rights reserved. 

C:\Users\Alexander\Desktop\tests-runner>python run.py 
Traceback (most recent call last): 
    File "run.py", line 165, in <module> 
    main() 
    File "run.py", line 27, in main 
    subprocess.call('py.test') 
    File "C:\Python27\lib\subprocess.py", line 522, in call 
    return Popen(*popenargs, **kwargs).wait() 
    File "C:\Python27\lib\subprocess.py", line 710, in __init__ 
    errread, errwrite) 
    File "C:\Python27\lib\subprocess.py", line 958, in _execute_child 
    startupinfo) 
WindowsError: [Error 2] The system cannot find the file specified 
+3

, 당신이 그것을 설치할 필요가 없습니다 :

import shlex shell_cmd = "py.test" # or should it be "test.py" ? subprocess_cmd = shlex.split(shell_cmd) subprocess.call(subprocess_cmd) 

하거나이 간단한 경우

. 파이썬 버전은 무엇입니까? –

+1

'subprocess' 모듈은 표준 라이브러리의 일부이며, 실제로 설치할 필요가 없습니다. 당신이 얻는 에러는'subprocess' 모듈 자체가 아니라, 서브 프로세스로 실행될 것으로 가정되는 * 실행 가능 파일을 찾을 수 없다는 것을 나타냅니다. 작업 디렉토리,'$ PATH' 또는 실행 파일이'.exe '가 아닌 문제 일 수 있습니다. –

+0

'py.test'는 어떤 종류의 파일입니까? Windows는'.test' 확장자를 가진 파일을 어떻게 실행해야하는지 모릅니다. 따라서 최소한 실행을 위해 인터프리터를 지정해야합니다. 'git.cmd'로이 문제의 예를 보려면 [이 질문] (http://stackoverflow.com/questions/4965175/make-subprocess-find-git-executable-on-windows/10555130)을보십시오. –

답변

7

파이썬 2.7에서이 모듈을 설치할 필요가 없습니다. 내장 된 표준 모듈입니다.

documentation은 Python 버전 2.4 용 라이브러리에 추가되었음을 보여줍니다. 오랫동안 우리와 함께했습니다.


질문 업데이트에 표시되는 오류는 파일을 찾을 수 없음 오류와 같은 것이 아닙니다. 가능하면 Popen을 호출하려고 시도하는 실행 파일을 찾을 수 없습니다.

그 추적은 subprocess이 설치되어 있고 가져 왔음을 나타냅니다. 문제는 단순히 subprocess.call('py.test')에 대한 호출이 실패하는 것입니다.

 
>>> import foo 
Traceback (most recent call last): 
    File "", line 1, in 
ImportError: No module named foo 
+0

방금 ​​질문을 업데이트하고 오류 텍스트를 추가했습니다. 아마도 제대로 이해하지 못했을까요? – avasin

+0

네, 당신 말이 맞습니다. 힘든 날 ... 8 분 안에 대답을 받아 들일 것입니다. – avasin

2

오류 텍스트가 오해의 소지가 : 향후 참조를 위해


이 설치되지 않은 모듈을 수입하려고 할 때 발생할 역 추적의 유형입니다. 대부분의 subprocess-commands는 shellcmd가 문자열 목록으로 제출되기를 기대합니다.

는 이러한 경우에 나는 강하게 shlex 모듈의 사용을 권장합니다 : 그것은 내장의

subprocess.call(["py.test"]) 
관련 문제