Невозможно импортировать matplotlib в сценарии

Я работаю над проектом, который включал автоматическое создание диаграмм информации и другой аналитической информации. Для этого у меня есть набор скриптов, вызываемых автоматически из одного основного скрипта. Один из них, генерирующий все графики, называется analysis.py, используя библиотеку matplotlib. Но по какой-то причине он не работает.

Вот начало файла, в который я импортирую matplotlib:

#!/usr/bin/python
import csv
from datetime import datetime
import numpy as np
import convert
from itertools import groupby

import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages

Всякий раз, когда я запускаю этот скрипт вручную в оболочке, он работает просто отлично:

root@ubuntu:/var/www/Project$ python /var/www/Project/analysis.py
root@ubuntu:/var/www/Project$

Кроме того, когда я импортирую matplotlib вручную, он также работает нормально:

root@ubuntu:/var/www/Project$ python
Python 2.7.3 (default, Jun 22 2015, 19:33:41)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib.pyplot as plt
>>> from matplotlib.backends.backend_pdf import PdfPages
>>>

Но всякий раз, когда analysis.py Вызывается из любого места (PHP-скрипт, другой Python-скрипт и т. д.). Ошибка при импорте statmenet для matplotlib. Он не возвращает никаких сообщений об ошибках (или я не знаю, как получить к ним доступ), но я выделил, что ошибка возникает в статистике импорта для matplotlib методом проб и ошибок.

Так почему же не импортировать matplotlib в некоторых ситуациях, и как мне обойти это?

Обновить:

Я обнаружил, что вызов скрипта из php и python вызывает проблемы по разным причинам. С php я использовал этот скрипт здесь:

$input = 'python /var/www/Project/analysis.py';
$command = escapeshellcmd($input);
$output = shell_exec($command);
echo '<pre>'.$output.'</pre>';

Вот где сценарию не удалось импортировать библиотеку matplotlib в analysis.py, Это правда, даже когда я позвонил analysis.py из другого скрипта Python (test.py), который в свою очередь называется в php.

Но когда я бегу test.py непосредственно:

import os
command = "python /var/www/Project/analysis.py"os.system(command)

На этот раз импортирует matplotlib, но возникает другая проблема. Всякий раз, когда я пытаюсь прочитать определенный файл, он возвращает пустую строку:

with open("/var/www/Project/profile_data.txt") as csvfile:
reader = csv.reader(csvfile)
next(reader)

Потому что я получаю эту ошибку:

next(reader)
StopIteration

Что означает, что файл пуст, когда его явно нет.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]