2011-01-23 16 views
12

私はCentOSの新機能で、M2Crypto Pythonパッケージをインストールしようとしています。Pythonパッケージをインストールできない

は私が走った:

sudo python setup.py install 

そして、それはOKに行くように見えた:M2Crypto

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 

しかし、私はインポートできません(これは出力の最後です):

$ 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

+0

フィードバックApalalaに感謝します。私はPython 2.4を実行しています。なぜなら、これはCentOSのデフォルトであり、多くのCentOSツールはPython 2.4が私が読んだものから期待しています。M2Cryptoのドキュメントでは、2.4で動作すると言われています。 – VacuumTube

+0

新しいバージョンのPythonを(デフォルトでは/ usr/local/bin /に)インストールして、あなたのスクリプトがそのパスでPythonを参照するようにすることができます。そうすれば、システムPythonと開発/配備Pythonのモジュールディレクトリを別々に持つことができます。あなたのpythonソースを設定するときには--prefix =/usr/local /を設定するだけです(デフォルトでは行いますが、あなたが望むものを作ることができます)。 – synthesizerpatel

答えて

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 
. 
. 
. 
+1

+1!あなたが言ったように、 "setup.py test"を実行すると、CentOS上のインストールの問題も修正されました!ありがとう! – rmbianchi

4

tests代わりtestを実行し、有効なターゲットではありません。私の問題を解決した。

2

同じ問題がcentos 6.2で発生しました。

テストを実行することも私のためにそれを固定しました。しかし、サイトのパッケージを見ると、何も変更されませんでした。 setup.pyテストを実行すると、ローカルディレクトリにm2crpytoが作成されます。

問題の鍵は、setup.py testを実行せずに問題を解決するために、M2Cryptoフォルダを残しておくことです。ローカルフォルダからm2cryptoを取り出し、卵を見つけられません。

関連する問題