Jump to Navigation

Me on Twitter

  • Building pynacl for ARM on my computer with #docker #buildx #qemu : 40 mn. Building it on a #RaspberryPi 4 with 4GB… https://t.co/KQVGjUtxqJ 12 weeks 6 days ago
  • @InfiniteLoopX @UlrichRozier #teletravail 12 weeks 6 days ago
  • @nic0b0 and BLOCKED ! https://t.co/ga9smJYtFA 13 weeks 4 days ago
  • mlocate will never ruin my evenings anymore ! UNINSTALLED ! https://t.co/07wCGOZv2Q 13 weeks 4 days ago
  • "failed to build cryptography" of course... 13 weeks 6 days ago
  • The worst is that I already know that I forgot some optional openssl dependencies and that I'll need to start again... 13 weeks 6 days ago
  • Building https://t.co/oTfN2b5DJ4 inside #docker on #armv7 ... Let's go to bed and see if it's done tomorrow morning… https://t.co/6xUegSZlZz 13 weeks 6 days ago
  • RT @Unexplained: Caption this! https://t.co/FobPIx7gXB 14 weeks 6 days ago
  • Nice pattern : proposing the user to test his password before disconnecting from an always-connected app #keybase #security 15 weeks 2 days ago
  • RT @esascience: These cosmic #fireworks are the motions of numerous stars at the outskirts of our Milky Way as measured by @ESAGaia! 15 weeks 3 days ago

Building PyCrypto for Win32

This article contains instructions to build PyCrypto 2.6 for Windows XP (32 bits).The PyCrypto library provides Python with implementation for a lot of algorithms for cryptography. It's very useful.

Ubuntu has it by default but if you want to have it for Python 3.2 on Windows, you must use Active Python, as there is no other binary release for Python 3.2 on the web.

In case you want to use the official Python distribution or if ActiveState did not (yet) released a PyCrypto for the version of Python you are using, this article might help you by putting together the steps to build it from source.

Also attached : a binary exe for the impatients.

Python logo

Building on Windows XP 32bits

First install Python if not already done : http://www.python.org/download/.

PyCrypto is an open source project so just get the package as well and unzip it : https://www.dlitz.net/software/pycrypto.

In order to fix a bug with distutils and the latest version of the compiler, edit <Python32_root>/Lib/distutils/cygwinccompiler.py by removing all occurrences of "-mno-cygwin" (this option has been removed in the latest versions).

Building PyCrypto requires a native compiler. By default it asks for Visual Studio but we will use MinGW :

In this console just type the following distutils command from the unzipped directory of PyCrypto :

python setup.py build --compiler=mingw32 install

And you're done : PyCrypto installed !

If you are just looking for the binary release, I've attached the installer for Win 32. This is probably not an optimized binary as the compilation produced the following message : "warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath"

Errors you might encounter

TypeError: unorderable types: NoneType() >= str()

gcc.exe is not in the PATH (http://bugs.python.org/issue8384). Use msys.bat or put all necessary tools in your PATH.

RuntimeError: chmod error

chmod.exe is not in the PATH (or MSYS is not installed)

IOError: Unable to find vcvarsall.bat

Visual Studio is not installed (http://bugs.python.org/issue2698). Use --compiler=mingw32.

References

AttachmentSize
pycrypto-2.6.win32-py3.2.exe662.6 KB

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • E-Mail addresses are hidden with reCAPTCHA Mailhide.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <python>. The supported tag styles are: <foo>, [foo].
  • Twitter-style #hashtags are linked to search.twitter.com.

More information about formatting options

By submitting this form, you accept the Mollom privacy policy.