Re: [ecasound] [ecasound-list] pyecasound and python3

From: Kai Vehmanen <kvehmanen@email-addr-hidden>
Date: Sat Sep 04 2010 - 13:48:20 EEST

Hi,

On Sat, 21 Aug 2010, Ray Rashif wrote:

> I understand that python is needed for third-party
> applications/developers wishing to make use of the ECI API. It appears
> that ecasound builds cleanly with python2 or python3 but that leaves
> me with a concern: will python3 be compatible when the API is in
> actual use, i.e when working with the provided modules?

as pointed out by others, python is just one of the languages for which
Ecasound's ECI API is available. But it was one of the first, so there are
quite a lot of options (plus history) related to it.

There are actually two separate implementations of ECI API for python:
   1) native implementation (pyecasound.so)
         - built against the Python module API (python.h)
         - installed as pyecasound.so
         - enabled by passing '--enable-pyecasound=c' to configure
         - potentially a bit faster, but depends on python runtime and
           major+minor version (needs to be rebuilt if python is upgraded)
   2) standalone implementation (ecacontrol.py)
         - installed as python scripts -> ecacontrol.py
         - installed unless explicitly disable by passing
           '--disable-pyecasound' to configure
         - forks '/usr/bin/ecasound' on the background and communicates
            via pipes to implement the ECI API (e.g. python is running
           in separate process context than the ecasound binary)
         - no build-time dependency to python

Python applications can use pyeca.py, which provides an automatic fallback
from (1) to (2) if pyecasound.so is not available (or does not work).

As for your question, if the native implementation builds against python3
headers, you should be fine. The standalone implementation has to be
tested at runtime (e.g. if you can pass the unit tests under
ecasound/pyecasound/ with python3 installed, you should be fine).

The standalone implementation is portable in the sense that you can use
it with different python versions. The native implementation has to be
built against a specific python module API (e.g. pythonx.y).

------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________
Ecasound-list mailing list
Ecasound-list@email-addr-hidden
https://lists.sourceforge.net/lists/listinfo/ecasound-list
Received on Sat Sep 4 16:15:04 2010

This archive was generated by hypermail 2.1.8 : Sat Sep 04 2010 - 16:15:04 EEST