使用web浏览器调用的python脚本运行exe
我正在运行一个带有python脚本的exe,该脚本由web浏览器调用 Exe文件存储在服务器端。 Exe文件接受一个输入文件,在输出中返回多个文本文件。运行exe的python脚本如下所示:使用web浏览器调用的python脚本运行exe,python,c,subprocess,cgi,exe,Python,C,Subprocess,Cgi,Exe,我正在运行一个带有python脚本的exe,该脚本由web浏览器调用 Exe文件存储在服务器端。 Exe文件接受一个输入文件,在输出中返回多个文本文件。运行exe的python脚本如下所示: import subprocess print ("Hello I am in python script") args = "/path/import.exe /path/input_file.txt -terms".split() popen = subprocess.Popen(args, std
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()
当我单独执行python脚本时,它会按预期运行,并在cgi-bin文件夹中输出几个文本文件
但是我想从我的web浏览器运行这个exe文件,因此我把它放在我的xampp服务器上的cgi bin文件夹中
在我的web浏览器上,我输入URL,如下所示:
脚本已执行,但我无法看到exe文件的预期输出,否则在终端上单独执行的情况下,该文件会工作得很好
我已经编辑了httpd.conf文件,以允许在web服务器上处理.py文件。script.py文件有一个指定给系统上安装的python的路径。给定的路径是绝对路径。出于测试目的,授予exe文件script.py的权限从现在起为chmod 777
我无法从python的子流程模块捕获任何错误。我在模块中使用了stderr,但它不打印任何信息。您可以将输出重定向到页面,在打印内容之前执行类似操作
sys.stdout.write("Content-Type: text/html\r\n\r\n")
也许这可以帮助你:
这没有帮助。我不需要将输出发送到浏览器。Exe文件必须在服务器端执行,并在服务器端存储输出文本文件。提供
txt
文件,为什么使用Exe
?重要的一点是wwwuser不等于操作系统级用户。哪个操作系统?在windows上:需要为python文件创建正确的系统变量
,在脚本中:exe在操作系统上运行
/哪个应用程序处理脚本
(Apache CGI目录定义)?不要忘记CGI脚本总是以开头/usr/bin/python
(在linux或同等版本上)Exe文件是一个对输入文本文件执行转换操作的程序。我在Mac上工作。我已确保对script.py、.exe文件和cgi bin目录拥有777个权限。我还用#开始了CGI脚本/usr/bin/python。我不确定wwwuser是否正确,但授予文件的所有权限应该不是问题。MAC上的.Exe?WINE的哪个版本?我的exe文件是从mac上的c源代码文件编译而来的。目前我不确定WINE的版本,但我可以检查一下。Friend Mac不使用exe。mac版的standart应用程序也是如此?(忘掉葡萄酒问题)