Python2.7.15 及3.6.2源码链接

关于Python的下载地址链接如下:(https://www.python.org/downloads/source/)
我用的是Python2.7.6和比较老的Python3.6.2,基本满足我的需求,大家也可以下载其他的版本一样适配。
首先声明一点:我是重装系统以后,在Ubuntu16.04本地用户无python的情况下进行部署的,若你已经安装了Python或者anaconda,请注意Python之间的冲突问题。欢迎随时留言交流。

Python安装需求梳理

关于Python,我之前用的是anaconda,编译caffe,还有就是安装pytorch和tensorflow。
首先说明一点,anaconda作为python包管理器,确实很强大,我还要编译c++/c程序,
有的时候,感觉anaconda不受控制,它下载了好多库,我的程序经常找错库,个人能力有限。
所以,痛定思痛,决定弃用anaconda,改为源码安装Python2.7和Python3.6。为什么是python3.6?
是因为Python3.6支持opencv-Python的安装。既然想做的事情清晰了,让我们看看具体的需求:

  1. 用于编译caffe-ssd(主要用的是Python2.7)
  2. 用于pytorch,tensorflow-gpu(主要是python3.6)
  3. 用于创建虚拟环境,主要是Python3.6。
  4. pip负责安装Python2.7的包
  5. pip3.6负责安装python3.7的包
  6. Python2.7的启动名称为Python2.7local
  7. Python3.6的启动名称为Python3.6
  8. 会针对caffe的编译需求进行配置configure

具体的东西都比较杂了,也是我自己一路踩过来的坑,和大家分享,作为一个借鉴。

Python2.7.15 安装过程

1、安装依赖包:
sudo apt-get install python-tksudo apt-get install autoconf curl libmysqld-dev libaio-dev libjpeg62-dev libpng12-dev libfreetype6-dev libssl-dev zlib1g-devsudo apt-get install tk-devsudo apt-get install openssl-devsudo apt-get install sqlite3apt-get install libsqlite3-dev

此处需要源码安装tcl/tk,请参考
2、编译安装
做好上述准备后,cd到源码包中。
依次输入如下指令:
./configure --enable-unicode=ucs4 --enable-shared CFLAGS=-fPIC --with-ssl --prefix=/usr/local/python2-7makesudo make altinstall 编译完毕,我是64位操作系统。

3、环境构建:
在.bashrc末尾中输入如下内容:
export PATH=/usr/local/python2-7/include:${PATH} export PATH=/usr/local/python2-7/bin:${PATH} export LD_LIBRARY_PATH=/usr/local/python2-7/lib:${LD_LIBRARY_PATH} export CPLUS_INCLUDE_PATH=/usr/local/python2-7/include/python2.7:$CPLUS_INCLUDE_PATH 为了能像一个指令那样使用Python2.7,做一个软连接:
sudo ln -s /usr/local/python2-7/bin/python2.7 /usr/local/bin/python2.7local

下载pip-18.1.tar.gzsetuptools-40.6.2.zip,解压后进入,分别输入如下指令:
python2.7local setup.py install

安装成功后,你就有了最新的pip及setuptools ,为了方便pip的使用,做一个软连接到local/bin
sudo ln -s /usr/local/python2-7/bin/pip /usr/local/bin/pip 此处一定要注意,你之前是否已经装过pip到此目录下,若是,则不要叫pip了,换一个名称即可。
到此Python2.7已经安装完毕,可以用Python2.7local 启动,用pip安装相关的包了。

python3.6安装过程

1、依赖包安装
sudo apt-get install python-tksudo apt-get install autoconf curl libmysqld-dev libaio-dev libjpeg62-dev libpng12-dev libfreetype6-dev libssl-dev zlib1g-devsudo apt-get install tk-devsudo apt-get install openssl-devsudo apt-get install sqlite3apt-get install libsqlite3-dev

tk的包和ssl的包尤其要注意。

2、编译安装
做好上述准备后,cd到源码包中。
依次输入如下指令:
./configure --enable-unicode=ucs4 --enable-shared CFLAGS=-fPIC --with-ssl --prefix=/usr/local/python3-6makesudo make altinstall 编译完毕,我是64位操作系统。
3、环境构建
在.bashrc 末尾输入如下内容:
export PATH=/usr/local/python3-6/include:${PATH} export PATH=/usr/local/python3-6/bin:${PATH} export LD_LIBRARY_PATH=/usr/local/python3-6/lib:${LD_LIBRARY_PATH} export CPLUS_INCLUDE_PATH=/usr/local/python3-6/include/python3.6m:$CPLUS_INCLUDE_PATH

为了能像一个指令那样使用Python3.6,做一个软连接:
sudo ln -s /usr/local/python3-6/bin/python3.6 /usr/local/bin/python3.6 安装晚Python3.6后,已经安装了pip3了,但是,版本太低,需要升级。

下载pip-18.1.tar.gz,解压后进入,输入如下指令:
python3.6 setup.py install

安装成功后,你就有了最新的pip3.6 ,为了方便pip的使用,做一个软连接到local/bin
sudo ln -s /usr/local/python3-6/bin/pip3.6 /usr/local/bin/pip3.6 此处一定要注意,你之前是否已经装过pip3.6到此目录下,若是,则不要叫pip3.6了,换一个名称即可。
到此Python3.6.2已经安装完毕,可以用Python3.6 启动,用pip3.6安装相关的包了。