安装python-2.7.12.
1)在python官网上下载相应的Linux版本: https://www.python.org/downloads/source/. 这里首先安装python2.7.12. 下载完毕, 解压:
tar -zxvf Python-2.7.12.tgz
2)在编译前先在PATH/python-2.7.12建一个文件夹python2:
mkdir PATH/python-2.7.12/python2
3)进入解压目录:
cd Python-2.7.12
4)开始编译安装, 首先指定python3的安装路径, 在./config处设置:
(./configure –help 会输出configure的帮助信息, 里面基本的东西都介绍了.)
./configure --prefix=PATH/python-2.7.12/python2 --enable-optimizations CFLAGS=-fPIC CXXFLAGS=-fPIC
安装OpenCV的错误信息:
libpython2.7.a(abstract.o): relocation R_X86_64_32S against `_Py_NotImplementedStruct' can not be used when making a shared object; recompile with -fPIC.
要重新安装python-2.7.12. 要安装共享版本的, 但是configure时不能指定–enable-shared, 这样在make install后python2/lib下回生成libpython2.7.a, libpython2.7.so.1.0. 但是libpython2.7.so.1.0是不能用的, 因此在命令行执行python时会出错, libpython2.7.so.1.0这个文件只是一个副本, 并不是python2的共享库文件. 将-fPIC参数在configure时加上即可:
./configure --prefix=PATH/python-2.7.12/python2 --enable-optimizations CFLAGS=-fPIC CXXFLAGS=-fPIC
一个是gcc的参数, 一个是g++的参数. 这样在make install后lib下会生成libpython2.7.a, libpython2.7.so.1.0, libpython2.7.so. libpython2.7.so是一个共享的, 带有”快捷箭头的文件和文件夹都可以看做是共享的”.
因此要想让编译的库或者文件是共享文件, 在gcc或g++编译或configure时指定CFLAGS=-fPIC CXXFLAGS=-fPIC即可.
执行完上述之后, 屏幕输出:
configure: WARNING: unrecognized options: –enable-optimizations
creating Modules/Setup
creating Modules/Setup.local
creating Makefile
发现optimizations是不识别的选项, 但只是警告. 编译也可通过, 只要生成Makefile文件即可.
5)make -j12 && make install
在make过程中如果没有报错, 就可以. 在python2下生成bin, inlcude, lib文件夹代表安装成功.
6)
可以通过设置环境变量PATH指定python2的路径:
export PATH=PATH/python-2.7.12/python2/bin/:$PATH
这样在~下的任意路径均可以使用python2. 这种方式设置的环境变量只是临时变量, 可以通过修改.bashrc中的PATH环境变量来指定python2的路径:
[~]$ vi .bashrc
在.bashrc加入export PATH=PATH/python-2.7.12/python2/bin/:$PATH
重启shell或者source .bashrc即可生效.
另外, python-2.7.12安装只安装python, 并不安装第三方库.