You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CPanel中PHP调用Python脚本遇内部服务器错误求助

解决CPanel中PHP执行Python脚本找不到虚拟环境模块的问题

问题原因

PHP执行shell命令时,默认调用系统全局的Python解释器,而你安装的yake、readability等模块仅存在于CPanel创建的虚拟环境中,全局Python无法访问这些模块,因此出现ModuleNotFoundError。终端中激活虚拟环境后能正常运行,是因为激活操作修改了环境变量,让python命令指向虚拟环境的解释器。

解决方案

方案1:直接使用虚拟环境的Python路径执行脚本

修改PHP代码中的python命令为虚拟环境的Python绝对路径,这样会直接使用虚拟环境的解释器,自动加载其中的模块:

<?php
   $command = escapeshellcmd('/home/mesuivln/virtualenv/seopython/3.7/bin/python /home/mesuivln/seopython/h1parser.py');
   $output = shell_exec($command);
   echo $output;
 ?>

方案2:切换目录后使用虚拟环境Python执行(若脚本依赖相对路径)

如果你的Python脚本中有相对路径引用,需要先切换到脚本所在目录,再执行:

<?php
   $command = escapeshellcmd('cd /home/mesuivln/seopython && /home/mesuivln/virtualenv/seopython/3.7/bin/python h1parser.py');
   $output = shell_exec($command);
   echo $output;
 ?>

方案3:给Python脚本添加shebang并设置执行权限

  1. 在h1parser.py的第一行添加虚拟环境Python的shebang:
#!/home/mesuivln/virtualenv/seopython/3.7/bin/python
  1. 通过CPanel终端给脚本添加执行权限:
chmod +x /home/mesuivln/seopython/h1parser.py
  1. 修改PHP代码直接执行脚本:
<?php
   $command = escapeshellcmd('/home/mesuivln/seopython/h1parser.py');
   $output = shell_exec($command);
   echo $output;
 ?>

内容的提问来源于stack exchange,提问作者roy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 04:25:22