Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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
Javascript 从php页面调用打开可见窗口的python脚本_Javascript_Php_Python - Fatal编程技术网

Javascript 从php页面调用打开可见窗口的python脚本

Javascript 从php页面调用打开可见窗口的python脚本,javascript,php,python,Javascript,Php,Python,我有这样的情况: 1) 一个非常基本的python脚本,它执行以下操作: import os def main(): p = os.popen('gedit &') if __name__ == "__main__": main() <script type="text/javascript"> function test() { $.ajax({ type: "POST", url: "http://loc

我有这样的情况: 1) 一个非常基本的python脚本,它执行以下操作:

import os

def main():
    p = os.popen('gedit &')

if __name__ == "__main__":
    main()
<script type="text/javascript">  

function test() {
    $.ajax({
        type: "POST",
        url: "http://localhost/CodeIgniter/application/temp/Test.py",
        success: function(response){
            alert('ok');
        },
        error:function(response) {
            alert("fail");
        }
    });
}
</script>
如果通过命令行运行,显然会打开一个gedit可见窗口

2) 我有一个php页面,通过ajax请求调用此脚本,类似于:

import os

def main():
    p = os.popen('gedit &')

if __name__ == "__main__":
    main()
<script type="text/javascript">  

function test() {
    $.ajax({
        type: "POST",
        url: "http://localhost/CodeIgniter/application/temp/Test.py",
        success: function(response){
            alert('ok');
        },
        error:function(response) {
            alert("fail");
        }
    });
}
</script>

功能测试(){
$.ajax({
类型:“POST”,
url:“http://localhost/CodeIgniter/application/temp/Test.py",
成功:功能(响应){
警报(“正常”);
},
错误:函数(响应){
警报(“失败”);
}
});
}
当调用test()函数时(例如按下按钮…),我看到警报ok,但实际上没有打开任何窗口。 查看流程列表,我还发现“gedit”流程不存在

其他提示:我总是能够运行其他python脚本,并获取它们的json响应(并处理它们),但是如果脚本打开某个窗口,我就看不到这个窗口

有人能帮我吗?
提前感谢

您可能需要在Web服务器进程和本地计算机之间设置一个X通道(?)。这并不容易。您必须设置一些环境变量。(export DISPLAY=:0)必须启用给定进程以连接到Xwindow服务器。(搜索xhost,xauth)谢谢你的建议。有没有一种快速的方法来启用server-x,让所有用户检查是否存在权限问题?我不知道。如果您从X环境启动Web服务器,它可能会继承所需的权限。但我认为这是一个非常小的机会…最后我用你的第一个建议解决了问题…我只需要做:导出显示=:0