0

PyCrypto2.5をコンパイルして組み込んだWindows7x64システムにPython2.7をインストールしました。のインストールパスには、D:\Python27\Lib\site-packages\Crypto\Cipherが表示されますDES.pyd。私は依存関係ウォーカーでそれを開き、それがinitDES唯一のエクスポートであることを確認しました。

私がやりたかったDES.pydのは、ビルドされてコードで使用できるようになったので、コピーして貼り付けることでした。これで、とD:\projectを含むプロジェクトフォルダができました。test.pyDES.pyd

test.pyコードが含まれています:

import sys
sys.path.append("D:\\project\\")
import DES
print 'hi'

実行するtest.pyと、次のエラーが発生します。

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    import DES
SystemError: dynamic module not initialized properly</code></pre>

この演習の目的は、pycrypto(PITA)をビルドしてインストールする必要なしに、友達に送信DES.pydしたり、友達に送信したりできるようにすることです。test.py上記のコードがDESに関係することはまったくないことを完全に理解しています。それをインポートできないという事実が、私の主な好奇心です。DESを使用した実際のコードが続きます。

DES.pydまた、 Pythonパスから直接インポートすると、のようfrom Crypto.Cipher import DESに問題なく動作します。

ありがとう!

4

1 に答える 1

0

https://github.com/dlitz/pycrypto/blob/master/src/block_template.c#L801でソースコードを見てください。モジュール名はにハードコードされていCrypto.Cipher._DESます。パッケージディレクトリ_DES.pydにない場合、初期化は失敗します。Crypto.Cipher

于 2012-09-18T05:45:39.700 に答える