Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

pypm install crcmod

How to install crcmod

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install crcmod
 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
1.7 Available View build log
1.7 Available View build log
Windows (64-bit)
1.7 Available View build log
1.7 Available View build log
Mac OS X (10.5+)
1.7 Available View build log
1.7 Available View build log
Linux (32-bit)
1.7 Available View build log
1.7 Available View build log
Linux (64-bit)
1.7 Available View build log
1.7 Available View build log
1.7 Available View build log
Depended by
Lastest release
version 1.7 on Jan 5th, 2011

The software in this package is a Python module for generating objects that compute the Cyclic Redundancy Check (CRC). There is no attempt in this package to explain how the CRC works. There are a number of resources on the web that give a good explanation of the algorithms. Just do a Google search for "crc calculation" and browse till you find what you need. Another resource can be found in chapter 20 of the book "Numerical Recipes in C" by Press et. al.

This package allows the use of any 8, 16, 24, 32, or 64 bit CRC. You can generate a Python function for the selected polynomial or an instance of the Crc class which provides the same interface as the md5 and sha modules from the Python standard library. A Crc class instance can also generate C/C++ source code that can be used in another application.


Documentation is available from the doc strings. It is up to you to decide what polynomials to use in your application. If someone has not specified the polynomials to use, you will need to do some research to find one suitable for your application. Examples are available in the unit test script test.py. You may also use the predefined module to select one of the standard polynomials.

If you need to generate code for another language, I suggest you subclass the Crc class and replace the method generateCode. Use generateCode as a model for the new version.


Python Version

The package has separate code to support the 2.x and 3.x Python series.

For the 2.x versions of Python, these versions have been tested:

  • 2.4
  • 2.5
  • 2.6
  • 2.7

It may still work on earlier versions of Python 2.x, but these have not been recently tested.

For the 3.x versions of Python, these versions have been tested:

  • 3.1
Building C extension

To build the C extension, the appropriate compiler tools for your platform must be installed. Refer to the Python documentation for building C extensions for details.


The crcmod package is installed using distutils. Run the following command:

python setup.py install

If the extension module builds, it will be installed. Otherwise, the installation will include the pure Python version. This will run significantly slower than the extension module but will allow the package to be used.

For Windows users who want to use the mingw32 compiler, run this command:

python setup.py build --compiler=mingw32 install

For Python 3.x, the install process is the same but you need to use the 3.x interpreter.

Unit Testing

The crcmod package has a module crcmod.test, which contains unit tests for both crcmod and crcmod.predefined.

When you first install crcmod, you should run the unit tests to make sure everything is installed properly. The test script performs a number of tests including a comparison to the direct method which uses a class implementing polynomials over the integers mod 2.

To run the unit tests on Python >=2.5:

python -m crcmod.test

Alternatively, in the test directory run:

python test_crcmod.py

Code Generation

The crcmod package is capable of generating C functions that can be compiled with a C or C++ compiler. In the test directory, there is an examples.py script that demonstrates how to use the code generator. The result of this is written out to the file examples.c. The generated code was checked to make sure it compiles with the GCC compiler.


The crcmod package is released under the MIT license. See the LICENSE file for details.


Craig McQueen

Subscribe to package updates

Last updated Jan 5th, 2011

Download Stats

Last month:4

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.