查看 python 的版本
<a href="http://my.oschina.net/moooofly/blog/142561#">?</a>
1
2
<code>[root@localhost ~]</code><code># python -v</code>
<code>python 2.4.3</code>
下载并安装 python-2.7.5
3
4
5
6
<code>[root@localhost ~]</code><code># wget http://python.org/ftp/python/2.7.5/python-2.7.5.tar.bz2</code>
<code>[root@localhost ~]</code><code># tar -jxvf python-2.7.5.tar.bz2</code>
<code>[root@localhost ~]</code><code># cd python-2.7.5</code>
<code>[root@localhost python-2.7.5]</code><code># ./configure</code>
<code>[root@localhost python-2.7.5]</code><code># make</code>
<code>[root@localhost python-2.7.5]</code><code># make install</code>
建立软连接,使系统默认的 python 指向 python2.7
正常情况下,即使 python2.7 安装成功后,系统默认指向的 python 仍然是 2.4.3 版本,考虑到 centos5.6 系统中的 yum 是基于 python2.4 才能正常工作,所以不要卸载 python2.4 版本。 那么 如何 实现将系统默认的 python 指向到 2.7 版本呢?
未做修改前:
<code>[root@localhost python-2.7.5]</code><code># ll /usr/bin/python*</code>
<code>-rwxr-xr-x 2 root root 8304 mar 6 2011</code><code>/usr/bin/python</code>
<code>lrwxrwxrwx 1 root root 6 jul 4 2013</code><code>/usr/bin/python2</code> <code>-> python</code>
<code>-rwxr-xr-x 2 root root 8304 mar 6 2011</code><code>/usr/bin/python2</code><code>.4</code>
做如下修改:
<code>[root@localhost python-2.7.5]</code><code># rm -f /usr/bin/python2</code>
<code>[root@localhost python-2.7.5]</code><code># mv /usr/bin/python /usr/bin/python2.4</code>
<code>[root@localhost python-2.7.5]</code><code># ln -s /usr/local/bin/python2.7 /usr/bin/python</code>
上面的 3 步分别为:
1.删除之前的软连接;
2.将默认 python 重命名为 python2.4 以给 yum 使用(这里可以省略该步骤,因为 python2.4 本身就存在);
3.将默认 python 软连接到 python2.7 上(这里要看新装的 python2.7 是否已存在到 python 的软连接)。
检验 python 指向是否成功
<code>[root@localhost python-2.7.5]</code><code># python -v</code>
<code>python 2.7.5</code>
解决默认 python 软链接指向 python2.7 版本后 yum 不能正常工作的问题
<code>[root@localhost python-2.7.5]</code><code># vi /usr/bin/yum</code>
<code>#!/usr/bin/python</code>
<code>...</code>
将文件头部的
改成
<code>#!/usr/bin/python2.4</code>
整个升级过程完成,可以使用 python2.7.5 版本了。
============== 我是分割线 =============
当默认 python 升级到 2.7.5 后,在未修改 /usr/bin/yum 时,运行 yum 相关命令会得到如下错误:
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<code>[root@localhost python-2.7.5]</code><code># yum list</code>
<code>there was a problem importing one of the python modules</code>
<code>required to run yum. the error leading to this problem was:</code>
<code> </code><code>no module named yum</code>
<code>please</code><code>install</code> <code>a package</code><code>which</code> <code>provides this module, or</code>
<code>verify that the module is installed correctly.</code>
<code>it</code><code>'s possible that the above module doesn'</code><code>t match the</code>
<code>current version of python,</code><code>which</code> <code>is:</code>
<code>2.7.5 (default, jul 5 2013, 02:21:36)</code>
<code>[gcc 4.1.2 20080704 (red hat 4.1.2-54)]</code>
<code>if you cannot solve this problem yourself, please go to</code>
<code>the yum faq at:</code>
<code> </code><code>http:</code><code>//wiki</code><code>.linux.duke.edu</code><code>/yumfaq</code>
<code> </code>
<code>[root@localhost python-2.7.5]</code><code>#</code>
这是因为 yum 对 python 版本具有依赖性的原因。/usr/bin/yum 的内容如下:
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<code>import</code> <code>sys</code>
<code>try:</code>
<code> </code><code>import</code> <code>yum</code>
<code>except importerror:</code>
<code> </code><code>print >> sys.stderr,</code><code>""</code><code>"\</code>
<code> </code><code>%s</code>
<code>%s</code>
<code>""</code><code>" % (sys.exc_value, sys.version)</code>
<code> </code><code>sys.</code><code>exit</code><code>(1)</code>
<code>sys.path.insert(0,</code><code>'/usr/share/yum-cli'</code><code>)</code>
<code> </code><code>import</code> <code>yummain</code>
<code> </code><code>yummain.user_main(sys.argv[1:], exit_code=true)</code>
<code>except keyboardinterrupt, e:</code>
<code> </code><code>print >> sys.stderr,</code><code>"\n\nexiting on user cancel."</code>
<code>~</code>
============== 我是分割线 2015-09-08 =============
上述变更方式,改动比较大,另外一种方式为,保留系统中已有 python 相关内容不变,仅通过变更环境变量的方式引用新版本 python 即可。
ps: 若出现错误 "importerror: no module named bz2" ,则需要先安装 bzip2-devel ,再重新编译 python 即可(正统方法);或者,执行
<code>cp</code> <code>/usr/lib64/python2</code><code>.6</code><code>/lib-dynload/bz2</code><code>.so</code><code>/usr/local/lib/python2</code><code>.7/</code>