当前位置: 首页 > 知识库问答 >
问题:

pyautogui错误显示,当python脚本从PHP调用

叶茂才
2023-03-14

我正在尝试使用pyautogui模块。如果我从控制台运行脚本,一切正常。当我尝试从php(shell_exec)执行python脚本时,apache2错误日志中出现以下错误:

Traceback (most recent call last):
  File "test.py", line 2, in <module>
    import pyautogui
  File "/usr/local/lib/python3.5/dist-packages/pyautogui/__init__.py", line 115, in <module>
    from . import _pyautogui_x11 as platformModule
  File "/usr/local/lib/python3.5/dist-packages/pyautogui/_pyautogui_x11.py", line 160, in <module>
    _display = Display(os.environ['DISPLAY'])
  File "/usr/lib/python3.5/os.py", line 725, in __getitem__
    raise KeyError(key) from None
KeyError: 'DISPLAY'

这是我的python脚本:

#! /usr/bin/python3
import pyautogui
import sys

print("Trying to get info")
pyautogui.click(3500,102,1)

下面是php:

$command = escapeshellcmd('/usr/bin/python3 test.py');
$output = shell_exec($command);
echo $output;

共有1个答案

须峰
2023-03-14

尝试xhost并通过类似os的操作系统手动导出python中的DISPLAY变量。环境['DISPLAY']=:1其中:1是显示变量的内容。

 类似资料:
  • 问题内容: 我有一些用PHP编写的代码,但是我还开发了一个用Python编写的脚本。是否可以从PHP代码调用此Python脚本? 如果是,如何从PHP将参数传递给Python脚本? 我试图找到一个没有成功的答案。 有人可以给我一个提示吗? 问题答案: 您使用系统功能:http : //php.net/manual/en/function.system.php 像这样:

  • 问题内容: 我正在尝试从python这样启动PowerShell脚本: 问题是我得到以下错误: 无法加载文件C:\ Users \ sztomi \ workspace \ myproject \ buildxml.ps1,因为在此系统上禁用了脚本的执行。请参阅“获取有关about_signing的帮助”以了解更多详细信息。 尽管事实上我很早以前确实通过键入管理员运行的PS终端来启用Powersh

  • 问题内容: 我有要从Python脚本调用的Perl脚本。我一直在寻找,并没有成功。我基本上是试图调用向Perl脚本发送1变量的方法,但是不需要Perl脚本的输出,因为它是一个自包含程序。 到目前为止,我想出的是: 只有刚刚开始的Python编程,所以我确定以上内容完全是胡说八道。任何帮助将非常感激。 问题答案: 如果您只想打开通往perl解释器的管道,那么您的方向正确。我认为您唯一缺少的是perl

  • 嗯,我在linux系统上安装时遇到问题。我遵循了digital ocean的所有指示。之后,我在浏览器中验证它,然后它显示这种。我在安装过程中遗漏了什么吗?我的php版本是7,我使用的是ubuntu 14.04。

  • 问题内容: 我是WordPress设计师,我为自己的主题之一开发了联系表格,该主题已通过jQuery验证。 请检查下面的代码,然后阅读下面的注释。 笔记: sendEmail.php是使用PHPmailer类发送电子邮件的正确脚本。 templatePath变量具有如下所示的完整模板路径的值:http : //somedomain.com/wp-content/themes/themename 上

  • 问题内容: 我在树莓派上有一个带有2个按钮(打开和关闭)的PHP网页,“打开”按钮重定向到On.php,“关闭”按钮重定向到Off.php在“ / usr / lib / cgi-bin”中,我有一个python脚本我想执行(script.py),我可以通过在终端上键入以下内容来完美地执行它 如果我从终端执行此操作,它将起作用。 问题是我的“ / var / www”文件夹中的PHP文件(On.p