Popen
경로에서 python3
을 찾을 수 없습니다. 기본 오류가 hello.py
발견되지 않은 경우
, 당신은 python3
실행 때문에
python: can't open file 'hello.py': [Errno 2] No such file or directory
당신은 subprocess
에 예외를 얻을 것이다 (즉, 읽기되지 않음) 대신 stderr
이 오류가 발생했을 것이지만, 실행할 파이썬 파일을 찾지 못했습니다.
먼저 파이썬 파일을 실행하려면 다른 프로세스에서 실행하지 않는 것이 좋습니다.
그러나 여전히 그렇게하고 싶다면 공백이 적절하게 처리되고 모든 파일에 대한 전체 경로를 제공하도록 이와 같은 인수 목록을 사용하여 실행하는 것이 좋습니다.
import subprocess
proc = subprocess.Popen([r'c:\some_dir\python3',r'd:\full_path_to\hello.py'], stdout=subprocess.PIPE)
tmp = proc.stdout.read()
print(tmp)
더 이동하려면 :
- 는
python3
의 경우, 전체 경로를 지정하지 않도록 시스템 경로에 넣어 좋은 것입니다. 또한 import subprocess,os
basedir = os.path.dirname(__file__)
proc = subprocess.Popen(['python3',os.path.join(basedir,'hello.py')], stdout=subprocess.PIPE)
tmp = proc.stdout.read()
print(tmp)
:이 위치한 경우 스크립트로
- , 말, 같은 디렉토리 및 현재 스크립트, 당신은 경로를
개선 조각을 하드 코딩 피할 수 Popen
을 전달 된 첫 번째 인수의 종류 execvp
을 수행합니다. 전달 된 첫 번째 인수가 .bat
파일 인 경우 접두사 또는 shell=True
을 추가하여 Popen
에 직접 실행하는 대신 셸에서 프로세스를 생성하도록 지시해야합니다.
확인, 자사의 제에 대한 작업,하지만 왜 내가 시저를 실행할 때 = subprocess.Popen ([ 'casperjs'os.path.join (기본 디렉토리, 'casper_script.js'), 표준 출력 = subprocess.PIPE) 그 반환 오류 – ivan
capserjs가 설치됩니다 – ivan
메신저 문제를 해결할 때 추가 "쉘 = 사실" – ivan