我正在尝试从PHP运行一个python脚本。python脚本从文本文件中读取内容,并相应地创建PDF。当我从终端运行Python脚本时,它运行得非常完美,并且得到了所需的PDF。但是,当我试图从PHP运行python脚本时,它会给出以下错误:
Traceback (most recent call last): File "/home/amogh/server/test.py", line 3, in from fpdf import FPDF ImportError: No module named fpdf PHP代码:
<?php
$output = shell_exec("/home/amogh/server/test.py 2>&1");
echo $output;
?>Python代码:
#! /usr/bin/python
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')我使用以下命令安装了fpdf:
pip install fpdf 我正在lighttpd服务器上运行我的PHP文件。有人能告诉我我哪里出了问题吗?
发布于 2018-10-09 11:40:50
这可能是因为运行脚本的用户不同。我认为当您从php运行它时,它是作为用户www-data执行的。
也许您从虚拟服务器运行pip,或者出于其他原因,www-数据用户无法访问fpdf模块。
编辑:
评论中的有用链接:
How to install Python Package for global use by all users (incl. www-data)
http://nocurve.com/2018/04/23/running-python-script-from-php-as-www-data/
https://stackoverflow.com/questions/52719515
复制相似问题