升級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文件。
可是目前尚未研究具體的緣由。