Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用web浏览器调用的python脚本运行exe_Python_C_Subprocess_Cgi_Exe - Fatal编程技术网

使用web浏览器调用的python脚本运行exe

使用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

我正在运行一个带有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, 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应用程序也是如此?(忘掉葡萄酒问题)