在旧服务器上 使用的是python 2.7.6,但是pip 有很多库是2.7.6不支持的(pip支持的某些库要在2.7.9以上),所以,新服务器上安装python2 最新版本2.7.15
先看一下系统自带的python 版本 python --version
我们这个系统是2.6.6版本 所以我们要安装python 2.7.15 并且不要影响 2.6.6,影响2.6.6 会影响到yum包的使用
先安装一些依赖库,有些系统可能已经存在了这些库,可以选择无视
|
<pre style="margin: 0px; tab-size: 4; white-space: pre-wrap;">
yum groupinstall -y "Development tools"
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel
yum install python-devel libffi-devel
</pre>
|
下载源码
https://www.python.org/downloads/release/python-2715/
去找tgz包
或者 直接
wget https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz
解压,进入解压后的源码包
<pre style="margin: 0px; tab-size: 4; white-space: pre-wrap;">
tar -zxvf Python-2.7.15.tgz
cd Python-2.7.15
./configure --prefix=/usr/local/python2.7.15 --enable-optimizations #这个路径因人而异,我只是习惯了把所有的编译安装软件的路径都放在/usr/local下
make
make install
</pre>
|
安装完成 python --version 看一下,此时python --version 版本应该还是2.6.6,我们将/usr/bin/ 目录下的python 改一下软链,先看一下/usr/bin 目录下的python 文件
|
<pre style="margin: 0px; tab-size: 4; white-space: pre-wrap;">
ls -alh /usr/bin |grep python
</pre>
|
[图片上传失败...(image-e9cc1-1545198408854)]
如图,意味着/usr/bin 目录下的python 还是2.6.6版,我们不能删掉它,因为删掉它,基于2.6.6版本的yum 就会异常,我们只需将python 软链到新版本2.7.15 上就可以
|
<pre style="margin: 0px; tab-size: 4; white-space: pre-wrap;">
cd /usr/bin
rm python
ln -s /usr/local/python2.7.15/bin/python python
</pre>
|
此时,再执行 python --version 应该显示是2.7.15
但是 此时yum 基于/usr/bin/python 这个文件,但是用的是2.6.6的文件,所以我们要在yum 的配置中修改 yum 引用源文件 即 /usr/bin/yum 中 使用python脚本的第一行代码
[图片上传失败...(image-e6e60b-1545198408855)]
上图是报错信息
修改代码
|
<pre style="margin: 0px; tab-size: 4; white-space: pre-wrap;">
vim /usr/bin/yum
</pre>
|
!/usr/bin/python -→ #!/usr/bin/python2.6
这里要说问什么不用 python2.7.15 这个脚本
如果我们后期用pip 安装了 import 也可以使用这个版本,但是方便起见,不想引起过多的bug 我们还是使用老版本
保存文件
再次 yum install gcc 看一下效果,这里不一定非要装gcc ,随便你想装什么,试试yum 是否正常就好,什么libconv 都可以
yum 正常了,我们就可以安装pip 了
pip的安装和使用
pip安装需要依赖 setuptools wget安装,如果安装不了就本集下载,然后scp到目标机上
|
<pre style="margin: 0px; tab-size: 4; white-space: pre-wrap;">
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar zxvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py install
</pre>
|
安装完成之后,退出setuptools源码 文件夹
在下载 pip 源码包 我是在本集下载,scp 到目标机上的
|
<pre style="margin: 0px; tab-size: 4; white-space: pre-wrap;">
tar -zxvf tar -zxvf pip-18.1.tar.gz
cd pip-18.1
python setup.py install
</pre>
|
这两步安装完之后都可以看到各自的版本,pip安装完之后可以看到路径
[图片上传失败...(image-44b80-1545198408855)]
此时环境变量中并没有 pip 执行 pip --version 是会报 pip comman not found 的
我们把上面看到的 pip 路径软链接到 /usr/bin/ 目录下
|
<pre style="margin: 0px; tab-size: 4; white-space: pre-wrap;">
ln -s /usr/local/python2.7.15/bin/pip /usr/bin/pip
</pre>
|
再执行 pip --version 可以看到 pip 版本,之后就可以pip 安装各种包了,比如检查脚本语发错误 的 pyflakes
pip install pyflakes 等
可用pip freeze 或pip list 查看安装的包
为方便起见,我们可以更换豆瓣源或者阿里,清华的源
切换到普通账号 比如 karl, 进入账号家目录
|
<pre style="margin: 0px; tab-size: 4; white-space: pre-wrap;">
cd ~
mkdir .pip
touch .pip/pip.conf
vim .pip.pip.conf
</pre>
|
[global]
timeout = 6000
index-url = http://pypi.douban.com/simple/
[install]
use-mirrors = true
mirrors = http://pypi.douban.com/simple/
trusted-host = pypi.douban.com
填入以上内容,保存
在pip install packages 时,可能会出现问题,即要安装的包需要其他的依赖,只要根据报错信息去安装其他依赖就好
比如我这里 pip install pandas 时会报错,我们看一下输出的报错 是缺少 include 这个包,我们现 pip install include 之后再去pip install pandas
|
<pre style="margin: 0px; tab-size: 4; white-space: pre-wrap;">
pip install pyflakes
cd /usr/bin
touch pyflakes
vim ./pyflakes
</pre>
|
输入 ,保存
!/usr/local/python2.7.15/bin/python
-- coding: utf-8 --
import re
import sys
from pyflakes.api import main
if name == 'main':
sys.argv[0] = re.sub(r'(-script.pyw?|.exe)?$', '', sys.argv[0])
sys.exit(main())
修改权限 chmod 777 pyflakes
然后可以使用pyflakes 去检查 py文件的语法是否报错了