Python 2.6 升级至 Python 2.7 的实践心得

2017-04-27 09:21:25 +08:00
 wsgzao

前言

CentOS 6.8 安装 Python 2.7.13,因为软件版本上的需求所以考虑将 Python 升级至 2.7.13,加上生产环境还是以 RHEL 6 为主,互联网自动化运维平台大多数也推荐以 Python 2.7.x + CentOS 6.x 来操作,选择 Python 2 还是 Python 3 也没有定论,找到适合的搭配即可。

Python 2.6 升级至 Python 2.7 的实践心得

更新历史

2017 年 04 月 26 日 - 初稿

阅读原文 - https://wsgzao.github.io/post/python-2-6-update-to-2-7/

扩展阅读

Python - https://www.python.org/ PyPI - https://pypi.python.org/pypi pip - https://pip.pypa.io/en/stable/user_guide/#configuration


简单安装

因为 Python 2.7.13 以后版本会自动完善 yum 配置,所以不必参考以前的网上文章去修改其他地方

# 查看当前系统中的 Python 版本,返回 Python 2.6.6 为正常
python --version

Python 2.6.6

# 检查 CentOS 版本,返回 CentOS release 6.8 (Final) 为正常
cat /etc/redhat-release

CentOS release 6.8 (Final)

# 安装所有的开发工具包
yum groupinstall -y "Development tools"
# 安装其它的必需包
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel

# 下载、编译和安装 Python 2.7.13
#wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz
tar zxf Python-2.7.13.tgz
cd Python-2.7.13
./configure
make && make install

# 查看新的 Python 版本,返回 Python 2.7.13 为正常
python --version

Python 2.7.13

ansible 离线安装实践

这里利用了一些内网离线安装 ansible 的小技巧,相关文件我会上传至网盘

# Install Python
tar xf Python-2.7.13.tgz
cd Python-2.7.13
./configure
make
make install

# ImportError: No module named six.moves
tar xf six-1.10.0.tar.gz
cd six-1.10.0
python setup.py install
cd ..
# ImportError: No module named packaging.version
tar xf packaging-16.8.tar.gz
cd packaging-16.8
python setup.py install
cd ..
# ImportError: No module named pyparsing
tar xf pyparsing-2.2.0.tar.gz
cd pyparsing-2.2.0
python setup.py install
cd ..
# ImportError: No module named appdirs
tar xf appdirs-1.4.3.tar.gz
cd appdirs-1.4.3
python setup.py install
cd ..
# Install Setuptools
unzip setuptools-34.2.0.zip
cd setuptools-34.2.0
python setup.py install
cd ..
# Install pip
tar xf pip-9.0.1.tar.gz
cd pip-9.0.1
python setup.py install
cd ..

# pip 离线下载依赖包
pip install -d ~/tmp/ ansible
pip install -d ~/tmp/ ansible-cmdb

# pip 离线安装
pip install ansible --index-url=http://172.31.197.1:7000/simple/ --trusted-host=172.31.197.1
pip install ansible-cmdb --index-url=http://172.31.197.1:7000/simple/ --trusted-host=172.31.197.1

# 查看安装好的版本
[root@ansible-wangao ansible]# pip -V
pip 9.0.1 from /usr/local/lib/python2.7/site-packages/pip-9.0.1-py2.7.egg (python 2.7)

[root@ansible-wangao ansible]# ansible --version
ansible 2.3.0.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/o overrides
  python version = 2.7.13 (default, Apr 25 2017, 17:19:23) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)]

[root@ansible-wangao ansible]# ansible-cmdb --version
ansible-cmdb v1.20

# 更换豆瓣 pip 源
vim  $HOME/.pip/pip.conf

[global]
index-url = https://pypi.doubanio.com/simple/
[install]

trusted-host=pypi.doubanio.com

Windows 安装 Python 2.7.x

Windows 下安装扩展包可能没有想象中那么顺利,遇到安装不上的包推荐去下面这个网址看看

http://www.lfd.uci.edu/~gohlke/pythonlibs/

下载 Python,如 2.7.13 https://www.python.org/downloads/ https://www.python.org/ftp/python/2.7.13/python-2.7.13.msi

安装时注意勾选环境变量 Add python.exe to Path

安装 python2.7.13 默认自带 pip 版本为 9.0.1 PS C:\Users\Administrator> pip -V pip 9.0.1 from c:\python27\lib\site-packages (python 2.7)

安装 Python 后升级 pip python -m pip install --upgrade pip

# 更换 pypi 国内源,运行以下 python 代码会自动建立 pip.ini
import os

ini="""[global]
index-url = https://pypi.doubanio.com/simple/
[install]
trusted-host=pypi.doubanio.com
"""
pippath=os.environ["USERPROFILE"]+"\\pip\\"

if not os.path.exists(pippath):
    os.mkdir(pippath)

with open(pippath+"pip.ini","w+") as f:
    f.write(ini)

离线安装包

http://pan.baidu.com/s/1o7J8QBw

7140 次点击
所在节点    Python
29 条回复
wwqgtxx
2017-04-27 09:31:10 +08:00
都 python3.6 了,还在讨论怎么从 2.6 升级当 2.7,也是醉了
alen
2017-04-27 09:31:49 +08:00
我开始用 pyenv,环境变量有问题退出账号后再次登陆就有问题,后来索性下载最新的 2.7.13 编译,改 yum 和 pip 就 OK 了,环境( Centos6.5 )
gyorou
2017-04-27 09:40:45 +08:00
hiboshi
2017-04-27 09:44:16 +08:00
表示升级到 2.7 后 yum 不能用了
chenqh
2017-04-27 09:45:15 +08:00
所以我用 ubuntu,升级麻烦。。
est
2017-04-27 09:47:10 +08:00
miniconda2 保平安。
alen
2017-04-27 09:47:45 +08:00
@hiboshi 修改 yum 调用的 python 版本指向之前的版本
hiboshi
2017-04-27 09:51:28 +08:00
@alen 然后我就重装 ub 了,本来也不熟悉 centos
limbo0
2017-04-27 09:53:48 +08:00
选择 Python 2 还是 Python 3 也没有定论

肯定是 3 啊, 2 马上就不支持了
coolcoffee
2017-04-27 10:01:09 +08:00
@limbo0 等到停止更新那天,再考虑升级 python3 也不迟呀。 这又不是操作系统,停止了更新就容易遭受到新的漏洞攻击。
Kilerd
2017-04-27 10:02:24 +08:00
pyenv 欢迎你
think2011
2017-04-27 10:15:50 +08:00
作为一名前端开发人员和 python 新手,我依然表示不能理解... 🐣
raysonx
2017-04-27 10:19:13 +08:00
CentOS6 可以用 scl 源将 python2.7 安装到非默认路径,不需要自己编译
Muninn
2017-04-27 10:22:44 +08:00
这还要写一篇文章 也是醉了。。。
lybenson
2017-04-27 10:23:45 +08:00
所以我选择 anaconda
Cooky
2017-04-27 10:47:05 +08:00
@Muninn +1
neroxps
2017-04-27 10:47:54 +08:00
@raysonx 求 url ?或者详细方法谢谢。
julyclyde
2017-04-27 10:57:00 +08:00
一般来说贴些无用文章都是一些垃圾小网站做的
习惯性我就看最后一行了
居然不是
GoBeyond
2017-04-27 12:12:34 +08:00
为什么要升级?能带来性能上的提升么?
leavic
2017-04-27 15:00:56 +08:00
这不是挖坟吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/357622

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX