Вопрос по windows, python, pycrypto, pip – Сборка PyCrypto с помощью fastmath (gmp или mpir) через pip в Windows

6

Я установил PyCrypto на Windows через pip, но не смог собрать Crypto.PublicKey._fastmath, потому что GMP не был найден.

Я знаю, что есть бинарная версия наПустое пространство но я хотел бы собрать последнюю версию PyCrypto

Windows7 64-битная scherlock
Какая версия Windows? 32-битный или 64-битный? SquareRootOfTwentyThree
Более простое решение здесь:stackoverflow.com/questions/15432010/… Márcio Moreira

Ваш Ответ

1   ответ
5

Следующий способ достижения вашей цели. Есть и другие, возможно, лучшие способы (например, на основе Visual Studio), но этот сработал для меня. Кроме того, он не используетpip.

Все операции выполняются в командной строке.

  1. Install Mingw, including MSYS and the Development Toolkit. This will give you a fairly complete Unix-like development environment.
  2. Ensure that Mingw binaries are in PATH environment variable. You need MinGW\bin and MingGW\msys\1.0\bin.
  3. Download MPIR sources in a temporary directory. It is important you do not use 2.5.1 because of a bug that will break the build. 2.5.0 is fine.
  4. Build the MPIR library. This is fairly straightforward: execute bash configure followed by make.
  5. HACK #1 Copy libmpir.a from mpir-2.5.0\.libs into C:\Python2.7.1\libs. This is necessary because distutils is broken and I could not find a way to direct it to the correct library location.
  6. HACK #2 Edit C:\Python2.7.1\Lib\distutils\cygwincompiler.py and remove any occurrance of the string -mno-cygwin. The reason is explained here.
  7. Download PyCrypto sources and unpack them in another temporary directory.
  8. Set CPPFLAGS environment variable to the MPIR directory, which contains mpir.h.
  9. HACK 3 Edit setup.py and add the following line in build_extension method:

    self.__add_compiler_option(os.environ['CPPFLAGS'])

  10. Run bash configure. You should see two lines saying:

    checking for __gmpz_init in -lgmp... no
    checking for __gmpz_init in -lmpir... yes

  11. Execute python setup.py build -c mingw32. You should see no errors.
  12. Execute python setup.py test to verify that everything is fine.
  13. Execute python setup.py install to copy the files into your local Python repository.
  14. Alternatively, run python setup.py bdist_wininst to create an installer.

Я действительно ненавижу все эти хаки, и мне очень хотелось бы услышать, можно ли их избежать.

Вы не должны делать шаги5 а также9 если в шаге8 Ты устанавливаешьCPATH а такжеLIBRARY_PATH переменные среды к значениямCPATH=C:\<path_to_mpir.h> а такжеLIBRARY_PATH=C:\<path_to_libmpir.a>

Похожие вопросы