[英]Python script can't find module when executed through PHP, but can find it when run via 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
看来您的woocommerce
模块未正确安装在系统中。 在CLI中运行脚本时可以找到它,但是当控制您的PHP实例的系统用户启动脚本时, woocommerce
模块不存在。 这表示此模块仅为您的普通CLI用户安装,而不是在系统中全局安装。
直接的解决方案是在全局安装woocommerce
模块,以便其他用户(包括运行PHP的系统用户)可以找到它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.