Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

An object-oriented interface for the Comedi drivers.

Project Description

This package provides an object-oriented interface to the Comedi drivers. The standard Python interface bundled with Comedilib is a simple SWIG clone of the C interface. In pycomedi, we convert the functions into class methods (see pycomedi.classes), so you don’t have to worry about dragging around opaque types like comedi_t * device pointers. We also bundle related constants together in _Enums and _Flags (see pycomedi.constants), to make handling common operations like flag manipulations simpler. Finally, there are a number of utility classes (see pycomedi.utility) to make common tasks like creating instructions or reading hardware-timed analog input easier.




I’ve packaged pycomedi for Gentoo. You need layman and my wtk overlay. Install with:

# emerge -av app-portage/layman
# layman --add wtk
# emerge -av dev-python/pycomedi


If you’re installing by hand or packaging pycomedi for another distribution, you’ll need the following dependencies:

Package Purpose Debian Gentoo
NumPy ? python-numpy dev-python/numpy
SciPy testing python-scipy sci-libs/scipy
Comedi Comedilib interface python-comedilib sci-libs/comedilib [1]
nose testing python-nose dev-python/nose
Cython Comedilib interface cython dev-python/cython
python-kmod Optional ext. info.   dev-python/python-kmod [1]
[1](1, 2) In the wtk overlay.

If python-kmod is installed, you will get additional module information from the demo program. If it is not installed, everything will still work, but will only be able to get the module version, not the kernel version, staging-ness, parameters, etc.

Installing by hand

Pycomedi is available as a Git repository:

$ git clone git://

See the homepage for details. To install the checkout, run the standard:

$ python install


See the examples in the doc directory.


Run integration tests with:

$ nosetests --with-doctest --doctest-extension=txt doc

The analog integration tests read from analog input channels 0 through 3, and write to analog output channels 0 and 1, so you’ll need a board with that many channels. You should also make sure that the analog output channels aren’t plugged into anything sensetive, since the tests sweep their output around over a reasonable chunk of the channel range. Some of the internal unit tests also write, so it’s safest to just disconnect all digital lines and analog outputs before running the tests.

Run both integration tests and internal unit tests with:

$ ./


This project is distributed under the GNU General Public License Version 2 or greater.


W. Trevor King

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(57.9 kB) Copy SHA256 Hash SHA256
Source None Jan 19, 2015

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers DreamHost DreamHost Log Hosting