博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记录一次CentOS环境升级Python2.6到Python2.7并安装最新版pip
阅读量:5997 次
发布时间:2019-06-20

本文共 7353 字,大约阅读时间需要 24 分钟。

背景介绍

一次实验中需要安装python-etcd包。安装这个包时要求的python和pip版本比目前系统的版本高。

 

系统是centos6.6    64位

1
2
3
4
5
6
7
[root@minion01 ~]
# uname -r
2.6.32-504.el6.x86_64
[root@minion01 ~]
# uname -m
x86_64
[root@minion01 ~]
# cat /etc/redhat-release
CentOS release 6.6 (Final)
[root@minion01 ~]
#

 

使用pip安装python-ectd包时提示命令找不到,需要先安装python-pip,pip是python的包管理工具

1
2
3
4
5
6
[root@minion01 ~]
# pip install python-etcd
-
bash
: pip: 
command 
not found
[root@minion01 ~]
# yum install python-pip -y
Installed:
  
python-pip.noarch 0:7.1.0-1.el6     此处省略安装过程    
[root@minion01 ~]
#      

 

继续安装python-ectd,提示pip版本太低,需要先升级pip。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@minion01 ~]
# pip install python-etcd
/usr/lib/python2
.6
/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_
.py:90: InsecurePlatformWarning: A 
true 
SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For 
more 
information, see https:
//urllib3
.readthedocs.org
/en/latest/security
.html
#insecureplatformwarning.
  
InsecurePlatformWarning
You are using pip version 7.1.0, however version 9.0.1 is available.
You should consider upgrading via the 
'pip install --upgrade pip' 
command
.
Collecting python-etcd
/usr/lib/python2
.6
/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_
.py:90: InsecurePlatformWarning: A 
true 
SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For 
more 
information, see https:
//urllib3
.readthedocs.org
/en/latest/security
.html
#insecureplatformwarning.
  
InsecurePlatformWarning
  
Downloading python-etcd-0.4.3.
tar
.gz
    
Complete output from 
command 
python setup.py egg_info:
    
Traceback (most recent call last):
      
File 
"<string>"
, line 20, 
in 
<module>
      
File 
"/tmp/pip-build-dByULi/python-etcd/setup.py"
, line 12, 
in 
<module>
        
if 
sys.version_info.major == 2:
    
AttributeError: 
'tuple' 
object has no attribute 
'major'
     
    
----------------------------------------
Command 
"python setup.py egg_info" 
failed with error code 1 
in 
/tmp/pip-build-dByULi/python-etcd

 

按照上面的提示先升级pip

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@minion01 ~]
# pip install --upgrade pip
You are using pip version 7.1.0, however version 9.0.1 is available.
You should consider upgrading via the 
'pip install --upgrade pip' 
command
.
/usr/lib/python2
.6
/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_
.py:90: InsecurePlatformWarning: A 
true 
SSLContext object is not available. <br>This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For 
more 
information, see https:
//urllib3
.readthedocs.org
/en/latest/security
.html
#insecureplatformwarning.
  
InsecurePlatformWarning
Collecting pip
  
Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    
100% |████████████████████████████████| 1.3MB 46kB
/s
Installing collected packages: pip
  
Found existing installation: pip 7.1.0
    
Uninstalling pip-7.1.0:
      
Successfully uninstalled pip-7.1.0
Successfully installed pip-9.0.1

 

继续执行命令,提示python版本太低

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@minion01 ~]
# pip install python-etcd
DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support 
for 
Python 2.6
Collecting python-etcd
  
Using cached python-etcd-0.4.3.
tar
.gz
    
Complete output from 
command 
python setup.py egg_info:
    
Traceback (most recent call last):
      
File 
"<string>"
, line 1, 
in 
<module>
      
File 
"/tmp/pip-build-okuCUU/python-etcd/setup.py"
, line 12, 
in 
<module>
        
if 
sys.version_info.major == 2:
    
AttributeError: 
'tuple' 
object has no attribute 
'major'
     
    
----------------------------------------
Command 
"python setup.py egg_info" 
failed with error code 1 
in 
/tmp/pip-build-okuCUU/python-etcd/

 

查看当前系统默认的python版本

1
2
[root@minion01 ~]
# python -V
Python 2.6.6

 

 

下载并解压python2.7.10

新建一个tools目录用于存放下载的tar包,下载并解压,命令如下

1
2
3
4
5
6
[root@minion01 ~]
# mkdir /tools -p
[root@minion01 ~]
# cd /tools
[root@minion01 tools]
# wget http://www.python.org/ftp/python/2.7.10/Python-2.7.10.tar.xz
[root@minion01 tools]
# unxz Python-2.7.10.tar.xz
[root@minion01 tools]
# tar -xf Python-2.7.10.tar
[root@minion01 tools]
# cd Python-2.7.10

 

配置编译参数

1
[root@minion01 Python-2.7.10]
# ./configure --enable-shared --enable-loadable-sqlite-extensions --with-zlib

 

修改一个文件

1
2
[root@minion01 Python-2.7.10]
# vim ./Modules/Setup
找到
#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz去掉注释并保存,然后进行编译和安装

 

编译和安装

1
[root@minion01 Python-2.7.10]
# make && make install

 

查看安装后的结果,备份原先的可执行文件,给新的文件做软链接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@minion01 Python-2.7.10]
# ll /usr/local/bin/
total 48
-rwxr-xr-x 1 root root   101 Dec 19 13:29 2to3
-rwxr-xr-x 1 root root    99 Dec 19 13:29 idle
-rwxr-xr-x 1 root root    84 Dec 19 13:29 pydoc
lrwxrwxrwx 1 root root     7 Dec 19 13:29 python -> python2
lrwxrwxrwx 1 root root     9 Dec 19 13:29 python2 -> python2.7
-rwxr-xr-x 1 root root  9776 Dec 19 13:29 python2.7
-rwxr-xr-x 1 root root  1687 Dec 19 13:29 python2.7-config
lrwxrwxrwx 1 root root    16 Dec 19 13:29 python2-config -> python2.7-config
lrwxrwxrwx 1 root root    14 Dec 19 13:29 python-config -> python2-config
-rwxr-xr-x 1 root root 18547 Dec 19 13:29 smtpd.py
[root@minion01 Python-2.7.10]
# mv /usr/bin/python  /usr/bin/python_bak
[root@minion01 Python-2.7.10]
# ln -s /usr/local/bin/python2.7 /usr/bin/python

 

再次查看版本,遇到如下报错,修改配置文件

1
2
3
4
5
6
7
8
9
10
[root@minion01 Python-2.7.10]
# python -V
python: error 
while 
loading shared libraries: libpython2.7.so.1.0: cannot 
open 
shared object 
file
: No such 
file 
or directory
<br>编辑配置文件,添加新的一行内容
/usr/local/lib
,保存退出
[root@minion01 Python-2.7.10]
# vim /etc/ld.so.conf<br><br>查看添加后的结果,在第一行
[root@minion01 Python-2.7.10]
# cat /etc/ld.so.conf
/usr/local/lib
include ld.so.conf.d/*.conf<br><br>执行ldconfig加载配置
[root@minion01 Python-2.7.10]
# ldconfig<br><br>再次执行查看版本命令,正确显示
[root@minion01 Python-2.7.10]
#  python -V
Python 2.7.10

 

再次执行安装python-ectd,有报错。pip有问题

1
2
3
4
5
6
[root@minion01 tools]
# pip install python-etcd
Traceback (most recent call last):
  
File 
"/usr/bin/pip"
, line 7, 
in 
<module>
    
from pip 
import 
main
ImportError: No module named pip
[root@minion01 tools]
#

 

为了解决上面问题,手动安装pip,依次执行下面命令

1
2
3
4
5
[root@minion01 Python-2.7.10]
# cd ..
[root@minion01 tools]
# wget https://bootstrap.pypa.io/get-pip.py
[root@minion01 tools]
# python get-pip.py
[root@minion01 tools]
# mv /usr/bin/pip  /usr/bin/pip_bak
[root@minion01 tools]
# ln -s /usr/local/bin/pip2.7 /usr/bin/pip

 

再次安装python-ectd,成功执行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
再次安装python-etcd,成功了
[root@minion01 tools]
# pip install python-etcd
Collecting python-etcd
  
Using cached python-etcd-0.4.3.
tar
.gz
Collecting urllib3>=1.7.1 (from python-etcd)
  
Downloading urllib3-1.19.1-py2.py3-none-any.whl (104kB)
    
100% |████████████████████████████████| 112kB 65kB
/s
Collecting dnspython (from python-etcd)
  
Downloading dnspython-1.15.0-py2.py3-none-any.whl (177kB)
    
100% |████████████████████████████████| 184kB 68kB
/s
Building wheels 
for 
collected packages: python-etcd
  
Running setup.py bdist_wheel 
for 
python-etcd ... 
done
  
Stored 
in 
directory: 
/root/
.cache
/pip/wheels/a4/72/72/513173535d5ec25c11dbb53ce7c53c92746bff62b362a402a7
Successfully built python-etcd
Installing collected packages: urllib3, dnspython, python-etcd
Successfully installed dnspython-1.15.0 python-etcd-0.4.3 urllib3-1.19.1
[root@minion01 tools]
#

  

转载地址:http://cuzmx.baihongyu.com/

你可能感兴趣的文章
自动化测试
查看>>
RSAC 2018:人工智能成为驱动网络安全的新 “引擎”
查看>>
micrometer自定义metrics
查看>>
作业十
查看>>
MySQL修改密码以及忘记MySQL密码处理方式
查看>>
Java封装性及属性的封装
查看>>
我的友情链接
查看>>
shell编写的linux命令练习工具
查看>>
希望这些建议,能推动管理软件开发的规范化进程 (当前操作员类BaseUserInfo)
查看>>
nginx的多域http、https同时访问配置及http重定向https
查看>>
Ubuntu12下挂载硬盘(9TB)
查看>>
Linux运维学习之数据库备份与恢复
查看>>
IPTABLES语法入门
查看>>
使用jekins构建apk文件
查看>>
Python几个常用模块
查看>>
CSS实现左图右文混排布局的方法
查看>>
CentOS7上的mongodb分片群集
查看>>
eclipse中server location灰色,如何修改?
查看>>
大数据课程重大福利,终身学习权限参与就有机会获取
查看>>
eyoucms表单令牌
查看>>