记录一次CentOS环境升级Python2.6到Python2.7并安装最新版pip
背景介绍
一次实验中需要安装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] # |
记录一次CentOS环境升级Python2.6到Python2.7并安装最新版pip的更多相关文章
- python2和python3同时存在如何安装和使用pip
linux下 如果没有pip则需要安装pip python2安装pip sudo apt install python-pip1如果是python3,则如下: sudo apt install pyt ...
- CentOS环境 升级Python2.6.6至2.7.5
1.查看当前Python版本 # python -V Python 2.6.6 # python -V Python 2.6.6 2.下载Python2.7.5源码 # wget http://p ...
- CentOS 5升级Python版本(2.4>2.7)
安装SALT时,需要这样作,公司有一批REDHAT5的,弄起来... 然后却是: Missing Dependency: python(abi) = 2.6 is needed by package ...
- 在阿里云的CentOS环境中安装django
购买了一台阿里云主机.操作系统为CentOS 6.5.准备在上面跑Django做Web开发.因为CentOS自带的python版本号较低,安装Django先要安装新版本号python.还是费了点周折. ...
- centos环境的python、scrapy部署
1 操作系统 Centos 6.5 64bit 或以上版本 2 软件环境 提示:(1)用什么软件:(2)运行环境(3)开发包. Python:Python-2.7.6.tgz Scrapy:Scrap ...
- CENTOS 7 升级安装 Python 3.5
写在前面的话 本文采取源码的方式安装 Python 3.5.2,如果是其它版本会有或多或少的差异,且写这篇的时候官网最新的是 Python 3.7,个人使用 3.5 就足够了,没必要更新到最新,否则出 ...
- CentOS环境安装python3,pip
安装python3(编译安装) 1. 下载python安装包到指定目录 cd /usr/local/src 这里的目录如果不存在可以自己建,当然也可以自己放在自己想放的位置,只要等会儿安装的时候能找到 ...
- Apache Superset1.2.0教程(四)—— CentOS环境安装
前文中,我们已经在windows环境进行了superset的安装,也对图表功能进行了展示.但是在平时使用以及生产环境中,还是需要在centos环境下进行操作. 本文将带大家详解在centos7环境进行 ...
- centos 7 升级后yum install出现Exiting on user cancel
centos 7 升级后yum install出现Exiting on user cancel centos 7.x升级后用yum install进行安装时经常出现Exiting on user ca ...
随机推荐
- maven项目 在eclipse,InteliJ IDEA中的一些问题
转载请注明出处,谢谢! 不论我们用什么ide来编辑我们的代码,最终的产品都会脱离ide来运行:正如燕飞离了巢,正如你离开了家,不期然就会运转出现问题. - 单强 2018年1月26日11:53 大家是 ...
- lnmp14最新版
系统需求: CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin Server/Aliyun/Amazon/Mint Linux发行版 需要5GB以上硬盘剩 ...
- FSFS和VDFS存储方式的区别
简单来说这个是VisualSVN基于FSFS文件系统格式扩展的.也就是说,分布式版本管理DVCS兴起之后,大家发现多个仓库的好处了,开始给SVN增加这个功能. 至于FSFS本身是SVN在2004年开始 ...
- DedeCMS实现自定义表单提交后发送指定QQ邮箱法
https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=monline_3_dg&wd=dedecms 邮箱&oq=d ...
- spring data jpa 学习笔记
springboot 集成 springData Jpa 1.在pom.xml添加依赖 <!-- SpringData-Jpa依赖--> <dependency <groupI ...
- jQuery的鼠标事件总结
jQuery的鼠标事件总结 1.click()事件. 2.dbclick()鼠标双击事件 3.mousedown()鼠标按下事件 4.mouseup()鼠标松开事件 5.mouseover()从一个元 ...
- Hyperledger Fabric Read-Write set semantics——读写集
Read-Write set semantics(读写集) 本文讨论了关于读写集当前实现的细节. Transaction simulation and read-write set(事务模拟和读写集) ...
- spring使用@Cache的简单实现
基于xml的配置感觉没有注解形式简单明了,咱不考虑了. 进入正题之前先提个疑问,希望知道的人能告诉一下 下述介绍会有这段代码: @Cacheable(value="myCache" ...
- lambda高级进阶--返回函数
在函数式编程语言中,函数是一级公民.如同你可以将数字传递给方法,也可以让方法产生数字一样,函数不仅可以作为参数,也可以作为返回值.这听起来好像有点抽象,在JAVA编码中,我们好像也很少这样子写到,但是 ...
- 三、Html常用标签
1,基本标签 <html>:html文档的根元素,可以指定一个xmlns属性,值只能是http://www/w3.org/1999/xhtml. <body>:页面主体部分 & ...