首页 > 解决方案 > Python脚本通过PHP执行时找不到模块,但通过CLI运行时可以找到它

问题描述

当我尝试通过我的 PHP 前端运行 python 脚本时遇到问题,我尝试了以下两种方法:

$command = "(python3 /my/script.py --params) 2>&1";
$output = shell_exec($command);

ob_start();
passthru($command);
$output = ob_get_clean();

两者都返回:

Traceback (most recent call last): File "/my/script.py", line 14, in from woocommerce import API ModuleNotFoundError: No module named 'woocommerce'

通过 CLI 运行时,脚本运行良好,但通过 PHP 运行时会抛出上述问题。这是有问题的行给我的问题。不知道为什么它可以在一个实例而不是另一个实例中找到该模块。

from woocommerce import API
from wordpress_json import WordpressJsonWrapper

标签: phppython

解决方案


看起来您的woocommerce模块未正确安装在系统中。在 CLI 中运行脚本时可以找到它,但是当控制您的 PHP 实例的系统用户启动脚本时,该woocommerce模块不存在。这表明该模块仅为您的普通 CLI 用户安装,而不是在系统中全局安装。

直接的解决方案是全局安装该woocommerce模块,以便其他用户(包括运行PHP的系统用户)可以找到它。


推荐阅读