配置theano

来源:互联网 发布:南宁关键字优化公司 编辑:程序博客网 时间:2024/05/21 04:23

这两天一直在centos上安装theano。从升级python到配置其依赖的库,前前后后折腾了好几天。简直爆炸!!!刚刚起步,希望我描述的问题可以帮到那些跟我一样刚刚起步的人。

首先吐槽一下:实验室居然上不去python的官网!!!!!!!!前期升级python时一顿瞎折腾,也没找到原因(原谅我是个菜鸟)。后来找领导反映了之后就奇迹般的能够上去了

电脑自带的系统是centos6的,其python最高版本是2.6,由于一直使用2.7所以偏执得一定要把它升到2.7。1)升级系统,2)下载python源码编译安装。我选择的第二种。具体的升级办法在前一篇博文里面已经有过介绍了。安装好python之后开始安装theano依赖的一些库,numpy,scipy,BLAS.....当然还有些工具。安装python的库当然建议使用pip安装,不然一个个下载,解压,安装太麻烦了。首先安装setuptools然后easy_install pip。安装theano的具体步骤:

1)sudo yum install python-devel python-nosepython-setuptools gcc gcc-gfortran gcc-c++ blas-devellapack-devel atlas-devel

2)sudo pip install numpy

3)sudo  pip install scipy

4)sudo pip install Theano

暗自窃喜,安装好了theano终于可以import了。但是往往就是事与愿违嘛!!!

第一下就出现类似的如下错误:

 Problem occurred during compilation with the command line below:
g++ -shared -g -march=core2 -mcx16 -msahf --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=4096 -mtune=core2 -D NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -D NPY_ARRAY_ENSUREARRAY=NPY_ENSUREARRAY -D NPY_ARRAY_ENSURECOPY=NPY_ENSURECOPY -D NPY_ARRAY_ALIGNED=NPY_ALIGNED -D NPY_ARRAY_WRITEABLE=NPY_WRITEABLE -D NPY_ARRAY_UPDATE_ALL=NPY_UPDATE_ALL -D NPY_ARRAY_C_CONTIGUOUS=NPY_C_CONTIGUOUS -D NPY_ARRAY_F_CONTIGUOUS=NPY_F_CONTIGUOUS -m64 -fPIC -I/opt/python/lib/python2.7/site-packages/numpy/core/include -I/home/.local/include/python2.7 -o /home/h.lengoc/.theano/compiledir_Linux-2.6.32-279.14.1.el6.x86_64-x86_64-with-centos-6.3-Final-x86_64-2.7.6-64/lazylinker_ext/lazylinker_ext.so /home/minh.lengoc/.theano/compiledir_Linux-2.6.32-279.14.1.el6.x86_64-x86_64-with-centos-6.3-Final-x86_64-2.7.6-64/lazylinker_ext/mod.cpp -L/home/.local/lib -lpython2.7
/usr/bin/ld: /home/minh.lengoc/.local/lib/libpython2.7.a(abstract.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
/home/.local/lib/libpython2.7.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
百度了一下是没有build correctly python。需要重新编译python:

rm -rf /usr/bin/python   首先删除该文件

然后找到解压后的python文件:find / -name Python*

进入解压后的python文件夹,重新编译;

./configure --enable-shared --prefix=/usr/local

make

make install

当我以为重新编译好之后就可以导入theano模块时,import之后又出现新的问题:

 ImportError: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
网上说是由于在系统的lib路径中找不到这个共享库,然后我使用whereis libpython2.7.so.1.0找到了文件的位置/urs/local/lib
添加环境变量 export LD_LIBRARY_PATH=/usr/local/lib
再次打开python的终端终于可以导入了

0 0
原创粉丝点击