升级linux下的python,版本以下:python
[root@BJLTPGPLM1002T ~]# more /etc/system-release Red Hat Enterprise Linux Server release 6.7 (Santiago) [root@BJLTPGPLM1002T ~]# uname -a Linux BJLTPGPLM1002T.lenovo.com 2.6.32-573.el6.x86_64 #1 SMP Wed Jul 1 18:23:37 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux [root@BJLTPGPLM1002T ~]#
升级方法以下:linux
下载Python源文件,进行编译安装,具体命令以下。vim
./configure --prefix=/usr/local/python2.7.11 make all make install make clean make distclean
安装后运行python -V,发现版本已是2.7.11。windows
在redhat和centos上都试过了(程序远程调用命令实现安装),同样的问题。centos
另外,安装后须要将新安装的python可执行文件链接到/usr/bin下:ln -s /usr/local/python2.7.11/bin/python2.7。服务器
还有,安装后yum将不可用,须要将yum文件第一行的python路径执行老的python可执行文件。python2.7
vim /usr/bin/yum ,将第一行由#!/usr/bin/python改成#!/usr/bin/python2.6。spa
可是须要pip功能,因此下载pip的代码文件安装,过程当中提示须要setuptools模块,因而下载setuptools模块。经过python setup.py install的方法安装。安装时报错:code
[root@BJLTPGPLM1002T setuptools-27.2.0]# python setup.py install Traceback (most recent call last): File "setup.py", line 11, in <module> import setuptools File "/tmp/setuptools-27.2.0/setuptools/__init__.py", line 14, in <module> from setuptools.dist import Distribution, Feature File "/tmp/setuptools-27.2.0/setuptools/dist.py", line 20, in <module> from setuptools import windows_support File "/tmp/setuptools-27.2.0/setuptools/windows_support.py", line 2, in <module> import ctypes File "/usr/local/python2.7.11/lib/python2.7/ctypes/__init__.py", line 10, in <module> from _ctypes import Union, Structure, Array ImportError: No module named _ctypes [root@BJLTPGPLM1002T setuptools-27.2.0]#
实际上是缺乏ctypes。ctypes是C语言实现的一个模块。原本应该是有的:orm
Python 2.7.11 (default, Sep 23 2016, 12:13:31) [GCC 4.4.7 20120313 (Red Hat 4.4.7-16)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import _ctypes >>> _ctypes.__file__ '/usr/local/python2.7.11/lib/python2.7/lib-dynload/_ctypes.so' >>>
目前是问题是为何缺乏了/usr/local/python2.7.11/lib/python2.7/lib-dynload/_ctypes.so?OS自带的2.6的Python包含_ctypes.so文件,可是2.7编译安装后没有找到这个文件。而主要的问题是,在10.99.201.34上安装2.7.12后没有找到_ctypes.so,可是这台机器以前安装的2.7.11中包含这个问题。因此问题是为何?
2016-09-29 补充:
缘由已找到。
python的安装文件在个人windows笔记本上作了解压,从新用7-zip这个软件打包为zip格式放到服务器(Windows)上,程序会下载这个文件而后作解压安装操做,这样安装致使了缺乏_ctypes.so文件。在windows下解压从新压缩的过程当中出现问题。
更换一种方法,将从Python官网上下载的文件解压开,获得一个tar文件,将此文件放到服务器端,而后在客户端程序中下载这个tar文件,而后在作解压安装过程,最后安装Python后包含了_ctypes.so文件。
可是目前尚未研究具体的缘由。