2011-01-23 213 views
12

我对CentOS非常陌生,我正尝试在其上安装M2Crypto Python软件包。无法安装Python软件包

我跑:

sudo python setup.py install 

而且它似乎去确定:(这是输出端)

removing 'build/bdist.linux-i686/egg' (and everything under it) 
Processing M2Crypto-0.20.2-py2.4-linux-i686.egg 
Removing /usr/lib/python2.4/site-packages/M2Crypto-0.20.2-py2.4-linux-i686.egg 
Copying M2Crypto-0.20.2-py2.4-linux-i686.egg to /usr/lib/python2.4/site-packages 
M2Crypto 0.20.2 is already the active version in easy-install.pth 

Installed /usr/lib/python2.4/site-packages/M2Crypto-0.20.2-py2.4-linux-i686.egg 
Processing dependencies for M2Crypto==0.20.2 

但是我无法导入M2Crypto:

$ python 
Python 2.4.3 (#1, Nov 11 2010, 13:34:43) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import M2Crypto 
Traceback (most recent call last): 
File "<stdin>", line 1, in ? 
File "M2Crypto/__init__.py", line 22, in ? 
import __m2crypto 
ImportError: No module named __m2crypto 
>>> 

我做错了什么?

+0

它似乎不像你做错什么。我在Ubuntu上安装了apt,并且在Python 2.6中没有问题。 (为什么使用Python的v2.4?)该模块正从/usr/lib/pymodules/python2.6/M2Crypto加载,其中有一个__m2crypto.so文件。我在/ usr/share/pyshared/M2Crypto中发现了另一个M2Crypto副本,并且那里没有.so文件。 – Apalala 2011-01-23 13:55:13

+0

感谢您的反馈Apalala。我运行的是Python 2.4,因为这是CentOS的默认设置,很多CentOS工具都希望从我读过的Python 2.4中获益。M2Crypto文档说,它使用2.4运行。 – VacuumTube 2011-01-23 14:01:01

回答

1

安装python模块时偶尔会发生这种情况。有几件事我可以解决这个问题:

  1. 有时候是因为你从未设置过PYTHONPATH。尝试:

    SETENV PYTHONPATH /usr/lib/python2.4/site-packages:$PYTHONPATH

  2. 有时是因为在发现共享库/ usr/lib中,你将不得不执行:

SETENV LD_LIBRARY_PATH /usr/lib目录:$ LD_LIBRARY_PATH

让我知道这是怎么回事。大部分时间,只是因为你没有正确设置python路径。

6

我跑:

python setup.py tests 

和固定它。它复制了一些文件,我认为这导致lib被放在正确的位置。

running test 
running egg_info 
writing M2Crypto.egg-info/PKG-INFO 
writing top-level names to M2Crypto.egg-info/top_level.txt 
writing dependency_links to M2Crypto.egg-info/dependency_links.txt 
reading manifest file 'M2Crypto.egg-info/SOURCES.txt' 
writing manifest file 'M2Crypto.egg-info/SOURCES.txt' 
running build_ext 
copying build/lib.linux-i686-2.4/M2Crypto/__m2crypto.so -> M2Crypto 
test_BitSTring (tests.test_asn1.ASN1TestCase) ... ok 
. 
. 
. 
4

tests是不是一个有效目标,运行test代替;为我解决了这个问题。

2

我刚碰到相同的问题,在6.2上。

跑步测试也为我修好了。然而,当我查看网站包时,没有任何改变。运行setup.py测试会在本地目录中生成m2crpyto。

这是问题的关键,要解决此问题而不运行setup.py测试,请保留M2Crypto文件夹。它从本地文件夹中提取m2crypto,但没有找到蛋。