Почему Python не может найти модули при вызове из PHP?

Я использую PHP exec() Команда для запуска сценария Python, но я получаю следующую ошибку:

Array ( [0] => Traceback (most recent call last): [1] => File "/vagrant/SRC_Local_Website/EAF_MODEL/EAF_Model.py", line 20, in [2] => from pylab import * [3] => File "/usr/lib/pymodules/python2.7/pylab.py", line 1, in [4] => from matplotlib.pylab import * [5] => File "/usr/lib/pymodules/python2.7/matplotlib/__init__.py", line 774, in [6] => rcParams = rc_params() [7] =>
File "/usr/lib/pymodules/python2.7/matplotlib/__init__.py", line 692, in rc_params [8] => fname = matplotlib_fname() [9] => File "/usr/lib/pymodules/python2.7/matplotlib/__init__.py", line 604, in matplotlib_fname [10] =>
fname = os.path.join(get_configdir(), 'matplotlibrc') [11] => File "/usr/lib/pymodules/python2.7/matplotlib/__init__.py", line 253, in wrapper [12] => ret = func(*args, **kwargs) [13] =>
File "/usr/lib/pymodules/python2.7/matplotlib/__init__.py", line 478, in _get_configdir [14] => raise RuntimeError("Failed to create %s/.matplotlib; consider setting MPLCONFIGDIR to a writable directory for matplotlib configuration data"%h) [15] => RuntimeError: Failed to create /var/www/.matplotlib; consider setting MPLCONFIGDIR to a writable directory for matplotlib configuration data )

Насколько я понимаю, Python не может найти Matplotlib а также pylab модули.

Я хотел бы отметить кое-что:

  • Я бегал: sudo apt-get install python-numpy python-scipy python-matplotlib успешно.
  • Если я запускаю этот файл Python непосредственно из оболочки (например, $python myFile.py) программа работает без ошибок.
  • В моем php-файле я попытался указать, где эти файлы можно найти с putenv('PYTHONPATH= ... (увидеть ниже)

Например, мой импорт выглядит следующим образом:

from casadi import *
from numpy import *
from pylab import *
import matplotlib.pyplot as plt

Первоначально не удалось найти cadADi, поэтому я добавил:

putenv('PYTHONPATH=$PYTHONPATH:/vagrant/SRC_Local_Website/EAF_MODEL/python_plugins/casadi-py27-np1.9.1-v3.0.0');

и это больше не было проблемой.

Точно так же с NumPy я должен был добавить:

putenv('PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/dist-packages');

Наконец, я попытался добавить:

putenv('PYTHONPATH=$PYTHONPATH:/usr/lib/pymodules/python2.7');

Вот где находятся mathplotlib и pylab (я не знаю, почему они отделены от dist-packagesэто только то, где они были автоматически установлены), но, к сожалению, я все еще получаю сообщение об ошибке выше.

Вопрос: Что может быть причиной этой проблемы?

1

Решение

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

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

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

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