升級Linux下的Python遇到問題

升級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文件。

可是目前尚未研究具體的緣由。

相關文章
相關標籤/搜索