php - 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);
}
?>
我该如何解决这个问题?
解决方案
推荐阅读
- html - 禁用具有比较条件的按钮
- javascript - materializecss轮播滑块模式
- node.js - TOMCAT Angular 应用程序无法连接到 node.js 服务器 - 如何安装代理?
- sql-server - 特定行的总和
- spring-boot - 每次我在 WAR 和 IDE 运行之间切换运行模式时,带有 Spring Boot 的 Flyway 都会覆盖整个数据库
- python - 绘图中的对数色标
- python - 无法使用已安装的库
- javascript - 在 angluarJS 中结合 ng-if 和 ng-click
- python - MongoDB 3.2.20 的 MongoEngine 版本
- angular - 如何观察 rxjs 中的属性变化?