6

pipを介してWindowsにPyCryptoをインストールしましたが、GMPが見つからなかったため、Crypto.PublicKey._fastmathをビルドできませんでした。

voidspaceにバイナリバージョンがあることは知っていますが、PyCryptoの最新バージョンをビルドしたいと思います

4

1 に答える 1

5

次の1つはあなたの目標を達成するための方法です。他にも、おそらくより良い方法があります(たとえば、Visual Studioに基づく)が、これは私にとってはうまくいきました。また、は使用しませんpip

すべての操作はコマンドプロンプトで実行されます。

  1. MSYSとDevelopmentToolkitを含むMingwをインストールします。これにより、かなり完全なUnixライクな開発環境が得られます。
  2. MingwバイナリがPATH環境変数に含まれていることを確認してください。あなたが必要MinGW\binMingGW\msys\1.0\bin
  3. 一時ディレクトリにMPIRソースをダウンロードします。ビルドを壊すバグがあるため、2.5.1を使用しないことが重要です。2.5.0で問題ありません。
  4. MPIRライブラリをビルドします。これはかなり簡単です。executeのbash configure後に。を続けmakeます。
  5. HACK#1libmpir.aからにコピーmpir-2.5.0\.libsC:\Python2.7.1\libsます。これが必要なdistutilsのは、壊れていて、正しいライブラリの場所に転送する方法が見つからなかったためです。
  6. HACK#2文字列の出現を編集C:\Python2.7.1\Lib\distutils\cygwincompiler.pyして削除します-mno-cygwin。その理由はここで説明されています。
  7. PyCryptoソースをダウンロードし、別の一時ディレクトリに解凍します。
  8. CPPFLAGS環境変数を、を含むMPIRディレクトリに設定しますmpir.h
  9. ハック3メソッド に次の行を編集setup.pyして追加します。build_extension

    self .__ add_compiler_option(os.environ ['CPPFLAGS'])

  10. を実行しますbash configure。次の2行が表示されます。

    -lgmpの__gmpz_initを
    チェックしています...いいえ-lmpirの__gmpz_initをチェックしています...はい

  11. 実行しpython setup.py build -c mingw32ます。エラーは表示されないはずです。
  12. 実行python setup.py testして、すべてが正常であることを確認します。
  13. 実行python setup.py installして、ファイルをローカルのPythonリポジトリにコピーします。
  14. または、実行python setup.py bdist_wininstしてインストーラーを作成します。

私はさまざまなハッキングをすべて嫌いです。それらを回避できるかどうか聞いてみたいと思います。

于 2012-06-07T21:50:37.053 に答える