使用easy_install的python ImportError:没有名为_md5的模块

时间:2010-11-25 16:02:23

标签: python easy-install

我搜索了很多,并没有找到任何答案来解决这个问题=(

我有一个CentOS 5作为服务器,遵循以下方法: http://wiki.osqa.net/display/docs/RHEL%2C+CentOS+5+Installation+Guide#RHEL%2CCentOS5InstallationGuide-Python

我可以安装与yum版本分开的python 2.6。但是当我运行./easy_install ElementTree时,我得到了这个奇怪的错误:

    Traceback (most recent call last):
  File "./easy_install", line 9, in <module>
    load_entry_point('distribute==0.6.14', 'console_scripts', 'easy_install')()
  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/pkg_resources.py", line 305, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/pkg_resources.py", line 2244, in load_entry_point
    return ep.load()
  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/pkg_resources.py", line 1954, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 24, in <module>
    from setuptools.package_index import PackageIndex
  File "/opt/ActivePython-2.6/lib/python2.6/site-packages/setuptools/package_index.py", line 2, in <module>
    import sys, os.path, re, urlparse, urllib2, shutil, random, socket, cStringIO
  File "/opt/ActivePython-2.6/lib/python2.6/urllib2.py", line 93, in <module>
    import hashlib
  File "/opt/ActivePython-2.6/lib/python2.6/hashlib.py", line 136, in <module>
    md5 = __get_builtin_constructor('md5')
  File "/opt/ActivePython-2.6/lib/python2.6/hashlib.py", line 63, in __get_builtin_constructor
    import _md5
ImportError: No module named _md5

我不懂python并且不知道如何解决这个问题,我正在尝试安装OSQA来为另一个国家运行phpBB支持论坛。

感谢您的帮助,最好的考虑。

5 个答案:

答案 0 :(得分:1)

我猜之前在CentOS上遇到类似的问题,是新的Python的ld路径没有设置,它找不到它的可加载模块文件夹。

此博客文章中的第3个代码块显示为opt Python设置ld路径(虽然它是2.7):http://toey.tc20.net/2010/08/04/install-python-2-7-gevent-on-centos-5-x86_64/

我认为安装程序会在安装步骤中完成此操作,但上面的博客文章可能会有所帮助。

答案 1 :(得分:1)

我遇到了同样的问题,发现问题与_md5.so无关,但是hashlib无法在try块中导入_hashlib.so,然后转到另一个通常未使用的代码段(其中_md5问题出现了)。尝试:

import _hashlib.so

我有类似的东西:

ImportError: <PATH>/lib/python2.7/lib-dynload/_hashlib.so: cannot restore segment prot after reloc: Permission denied

我用Google搜索并发现http://www.quantumwise.com/forum/index.php?topic=16.0表示您需要这样做:

chcon -t texrel_shlib_t <PATH>/lib/python2.7/lib-dynload/_hashlib.so

这对我有用。

答案 2 :(得分:0)

Activepython 2.6似乎在其最新版本中存在一些问题。请检查以前的版本。

答案 3 :(得分:0)

我也遇到了和你一样的问题,我在添加了安装模块的python的lib路径后修复了它。

这实际上是由LD_LIBRARY_PATH引起的,请尝试在您的LD_LIBRARY_PATH中添加“/opt/ActivePython-2.6/lib”。

setenv LD_LIBRARY_PATH /opt/ActivePython-2.6/lib:$LD_LIBRARY_PATH

答案 4 :(得分:0)

归功于http://johnsofteng.wordpress.com/2009/06/21/python-importerror-no-module-named-_md5/

我在Redhat 6.4上遇到了类似的问题,python二进制(2.7.x)包是从其他已经安装的系统(从源代码构建)中复制的。

问题是_hashlib.so,它错过了libssl.so.0.9.8

bash-4.1# ldd /proj/application/tools/python2.7/lib/python2.7/lib-dynload/_hashlib.so
    linux-vdso.so.1 =>  (0x00007fff51d6f000)
    libssl.so.0.9.8 => not found
    libcrypto.so.0.9.8 => /usr/lib64/libcrypto.so.0.9.8 (0x00007f9a69746000)
    libpython2.7.so.1.0 => /proj/application/tools/python2.7/lib/libpython2.7.so.1.0 (0x00007f9a6936b000)

我只是安装错过的软件包和软件链接到库。

bash-4.1# yum install -y tar openssh-clients
bash-4.1# ln -s /usr/lib64/libssl.so.0.9.8e /usr/lib64/libssl.so.0.9.8

然后setuptool安装成功