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

可是目前尚未研究具体的缘由。

相关文章
相关标签/搜索