2016-10-20 53 views
1

我已经安装了mod_wsgi --with-python选项。 当我在apache上运行flask应用程序时,它说“没有模块名称瓶” Flask已经安装在anaconda中。 我如何强制mod_wsgi拿起anaconda库。使用Mod_wsgi和Anaconda python库

+0

是他们的系统Python版本,与Anaconda版本相同的版本?例如。如果Anaconda Python是2.7,那么是否有2.7版本的正常系统Python?你会得到什么''import sys; Anaconda Python版本中的sys.prefix''? Flask安装在为Anaconda Python创建的虚拟环境中,还是安装在主Anaconda? –

+0

sys.prefix显示“/home/jdnco/anaconda2".Yes有一个系统python版本2.7,现在mod_wsgi使用我想mod_wsgi使用anaconda python。 – Sidharth

+0

我在httpd.conf中添加了这个WSGIPythonHome/home/jdnco/anaconda2它显示错误“No module site”,如果我删除这个路径,它显示“No module name flask”。通过执行ldd/etc/httpd/modules/mod_wsgi .so它显示linux-vdso.so.1 =>(0x00007fff219fa000) \t libpython2.7.so.1.0 => /lib64/libpython2.7.so.1.0(0x00007fb7115ba000) \t libpthread.so.0 =>/lib64/libpthread.so.0(0x00007fb71139e000) – Sidharth

回答

2

您可能需要执行以下操作。

当您从源代码构建mod_wsgi时,请将LD_RUN_PATH环境变量设置为/home/jdnco/anaconda2/lib。因此回去做这样的事情在mod_wsgi的源代码如下:

make distclean 
./configure --with-python=/home/jdnco/anaconda2/bin/python 
LD_RUN_PATH=/home/jdnco/anaconda2/lib make 
sudo make install 

这将确保它与正确的库链接。再次使用ldd进行检查。

然后Apache配置文件中还设置:

WSGIPythonHome /home/jdnco/anaconda2 

在其中在系统中的目录相匹配版本的非标准位置使用Python安装时这两种是必要的。

+0

感谢您的回复,我会试试这个并回复您。 – Sidharth

+0

好吧,我已经完成了上述步骤,现在做ldd它显示/ home/user/anaconda2 path.So直到现在一切都很好,但现在当我访问应用程序时显示“No module name site”error.Any comments on this ? – Sidharth

+0

你是不是指''ldd''显示它在''/ home/jdnco/anaconda2/lib''中找到''libpython2.7.so''?什么版本的Anaconda Python是这个?多年来,Anaconda Python引发了各种各样的问题。在mod_wsgi中还有另一个与它无关的修复,因此请确保您使用的是最新的mod_wsgi源代码。 –