首页 > 解决方案 > Apache 日志显示在 php 中调用时 paho.mqtt.client 不存在,但我可以通过 ssh 启动 py 脚本

问题描述

我有一个简单的 Python 脚本,它发布了一些用于测试的 MQTT 静态数据。当我在终端中调用它时,这工作正常。它是一个 Ubuntu 18。但是当我在我的 php 中调用 python 脚本时, shell_exec("python mqttpub.py");Apache2 日志显示我ImportError: No module named paho.mqtt.client

我尝试执行其他一些 python 脚本,在其中我只返回 sys statimport sys并且在日志中不会引发错误并且可以正常工作。

Python代码:


#!/usr/bin/python
import paho.mqtt.client as mqtt

def main():    
    publishall()

def publishall():
    broker_address="localhost" 
    client = mqtt.Client("P1") #create new instance
    client.connect(broker_address) #connect to broker
    client.publish("sensor/temperature_celsius", "35")#publish

main()

PHP 代码:mqtt.php

<?php
    session_start();

    $action = $_POST['action'];

    switch ($action) {
        case "posttemp":
        posttemp();
            break;
    }   

    function posttemp () {
        $res = array();
        $res["resultmsg"] = "Temptest ok";
        $res["temp"] = $_POST['temp'];
        $output = shell_exec("python mqttpub.py");
        $res["py"] = $output;
        echo json_encode($res);
    }
?>

我该如何解决这个问题?

标签: phppythonapache

解决方案


推荐阅读