[Python-apps-team] Bug#674073: Cython 3

Bradley M. Froehle brad.froehle at gmail.com
Tue Jul 24 01:58:54 UTC 2012


The question of how to divide Cython up between different packages is an
interesting one.  Fundamentally Cython is both a set of python modules
(Cython, cython, pyximport) and a very simple entrance script (/usr/bin/cython).
In addition, the Debian package adds a man page and some docs.

It's clear that a python-cython package should contain the various packages
for Python 2, and a python3-cython package should contain the various
packages for Python 3.

The only real question is how to handle the simple entrance script::

    #!/usr/bin/python
    from Cython.Compiler.Main import main
    main(command_line = 1)

Now there is no difference in behavior between calling this with Python 2
or Python 3 (except, of course, that one must have the Cython package installed
for that version of Python).

The current 'cython3' is nothing more than a clumsy hack, mostly out of laziness
on my part.  I don't think we should make "cython3" mean "cython -3" or
anything like that.

>From an end user perspective, we need only provide a "cython" script which
calls a version of Python for which Cython is installed.

The only way I know how to handle this would be to provide versioned scripts
(i.e., 'cython2.7' and 'cython3.2') and register each as an alternative of
'cython'.

This does have some potential for confusion.  For example, do I need to run
cythonX.Y to produce code which compiles against CPython X.Y? No.  Nonetheless,
this approach (except without the alternatives) is used by python-numpy for the
f2py script.

Thoughts?

-Brad



More information about the Python-apps-team mailing list