为Apache httpd加载OpenMPI模块

我该如何告诉Apache httpd要使用哪个版本的MPI?

我试图在Apache httpd下运行一个Django Web应用程序,并且我们的一些页面使用mpi4py进行MPI调用。 问题是当页面试图导入MPI时,我得到一个ImportError。

ImportError:libmpi.so.1:无法打开共享目标文件:没有这样的文件或目录

服务器同时安装了OpenMPI和MPICH,并且在用户shell中,我必须键入module load openmpi/gnu才能使用mpi4py。 例如,这将会导致加载库时出错:

 python -c "from mpi4py import MPI" 

我用这行创build一个/etc/profile.d/openmpi.sh文件解决了用户shell的问题:

 module load openmpi/gnu 

不幸的是,这听起来像Apache用户不加载全局configuration文件,所以我仍然在我的页面中的ImportError。 我尝试在/etc/sysconfig/httpd的末尾加载模块:

 . /etc/profile.d/modules.sh module load openmpi/gnu 

不幸的是,我仍然得到ImportError。 如果我注释掉导入并检查os.environ['PATH'] ,看起来openmpi模块还没有加载,所以加载Apache服务的shell不能与运行Apache服务的shell相同。

我也尝试在/etc/bashrc进行更改,但似乎也不影响apache用户。

我们使用CentOS 5.9在Scyld Beowulf群集上运行Apache 2.2.3。