2016-07-14 4 views
2

웹 브라우저에서 호출하는 python 스크립트로 exe를 실행하고 있습니다.웹 브라우저에서 호출하는 python 스크립트로 exe를 실행하십시오.

Exe 파일은 서버쪽에 저장됩니다. Exe 파일은 입력 파일을 사용하고 출력에서는 여러 텍스트 파일을 반환합니다.

import subprocess 
print ("Hello I am in python script") 

args = "/path/import.exe /path/input_file.txt -terms".split() 

popen = subprocess.Popen(args, stdout=subprocess.PIPE) 

popen.wait() 

output = popen.stdout.read() 

을 내가 기대 출력 여러 텍스트 파일의 cgi-빈 폴더로 파이썬 스크립트를 개별적으로 실행 실행하면 다음과 같이 EXE를 실행하는 파이썬 스크립트입니다.

하지만 내 웹 브라우저에서이 exe 파일을 실행하고 싶습니다. 따라서이 파일을 내 xampp 서버의 cgi-bin 폴더에 넣었습니다. http://localhost/cgi-bin/script.py

스크립트가 실행하지만, 그렇지 않으면 터미널의 개별 실행의 경우에 완벽하게 잘 작동 EXE 파일의 예상 출력을 볼 수 없습니다 나는 다음과 같이 내 웹 브라우저에

나는 URL을 입력 .

웹 서버에서 .py 파일을 처리 할 수 ​​있도록 httpd.conf 파일을 편집했습니다. script.py 파일에는 시스템에 설치된 python에 주어진 경로가 있습니다. 주어진 경로는 절대 경로입니다. exe 파일에 부여 된 권한 인 script.py는 테스트 목적으로 chmod 777입니다.

python의 하위 프로세스 모듈에서 오류를 캡처 할 수 없습니다. 모듈에서 stderr를 사용했지만 정보를 인쇄하지 않습니다.

+0

는'txt' 파일을 제공하고 왜'exe'을 사용 :

sys.stdout.write("Content-Type: text/html\r\n\r\n") 

어쩌면이 당신을 도와 드릴까요? 중요한 점은 'os 수준의 사용자와 동등하지 않은 사용자'입니다. 어느 OS? 창에서 :''exe run on os' /'당신의 스크립트를 처리하는 응용 프로그램'(Apache CGI 디렉토리 정의)에서 스크립트에서'파이썬 파일을위한 올바른 시스템 변수를 생성해야합니다. ' CGI 스크립트가 항상'#! '으로 시작한다는 것을 잊지 마십시오./usr/bin/python'(리눅스 또는 동급 인 경우) – dsgdfg

+0

Exe 파일은 입력 텍스트 파일에 대해 변환 작업을 수행하는 프로그램입니다. 나는 Mac에서 일하고있다. script.py, .exe 파일 및 cgi-bin 디렉토리에 대한 777 권한을 확보했습니다. 그리고 #로 CGI 스크립트를 시작했습니다!/usr/bin/python. 나는 wwwuser에 대해 확신하지는 않지만 파일에 대한 모든 권한을 부여하면 문제가 발생하지 않아야한다. –

+0

MAC에 Exe? 어떤 와인? – dsgdfg

답변

관련 문제