我正在使用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 myFile.py
),程序运行正常,没有错误。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
分开,这就是它们被自动安装到的地方),但不幸的是我仍然收到上面的错误。
问题:这个问题可能是什么原因?