php - 从 PHP 调用 Python 脚本不起作用
问题描述
我正在用 PHP 创建一个网页,如果按下按钮,PHP 脚本会使用shell_exec()
命令执行 python 脚本。python 脚本使用 fpdf python 库创建一个 pdf 文件。当我从命令 shell 运行相同的命令时,它运行良好,但是当我尝试从 PHP 运行 python 脚本时,它什么也没给我。这是PHP代码:
<!doctype html>
<?php
$command = escapeshellcmd('/home/amogh/server/test.py');
$output = shell_exec($command);
echo $output;
?>
Python脚本:
#! /usr/bin/python
#print ('hello')
from fpdf import FPDF
fp = open('downloads/boot.txt', 'r')
pdf = FPDF()
pdf.add_page()
pdf.set_font('Arial', '', 11)
line = fp.read()
pdf.multi_cell(200, 5, line, 0, 1)
pdf.output('test.pdf', 'F')
另外,我正在使用lighttpd
服务器。谁能告诉我我哪里出错了?
解决方案
我猜工作目录是错误的,您的脚本无法访问它需要的文件。
您可能想使用
shell_exec("/home/amogh/server/test.py 2>&1");
为了将 stderr 重定向到 stdout,因此 Python 的任何错误输出也将在$output
变量中,以帮助您调试。
推荐阅读
- azure - 不支持 KeyVault 备份
- css - Tailwind CSS 徽标居中
- java - Hazelcast 成员不共享嵌入式拓扑中的条目
- angular - Angular + Laravel API 通信问题
- vue.js - VUE 从来自 v-for 元素的多个复选框的复选框中传递值
- javascript - Angular:是否需要再使用 app.server.module.ts?
- performance - 以管理员身份更快地环回适配器
- javascript - 如何一次分配100个号码
- javascript - 如何在 Reactjs 中获取表格
- python-3.x - GBQ DML 无法按条件删除行