FPDF ImportError: нет модуля с именем fpdf - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь запустить скрипт на Python из PHP.Скрипт python считывает содержимое из текстового файла и соответственно создает PDF.Когда я запускаю скрипт Python из терминала, он работает отлично, и я получаю необходимый PDF-файл, как и ожидалось.Но когда я пытаюсь запустить скрипт Python из PHP, он выдает следующую ошибку:

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 

Я запускаю свои файлы PHP на lighttpd сервере.Может кто-нибудь сказать мне, где я иду не так?

1 Ответ

0 голосов
/ 09 октября 2018

Это может быть из-за разных пользователей, запускающих скрипт.Я думаю, что когда вы запускаете его из php, он выполняется как пользователь www-data

Возможно, вы запустили pip из virtualenv или по какой-то другой причине у пользователя www-data нет доступа к модулю fpdf.

Редактировать:

Полезные ссылки из комментариев:

Как установить пакет Python для глобального использования всеми пользователями (включая www-данные)

http://nocurve.com/2018/04/23/running-python-script-from-php-as-www-data/

...