He escrito un módulo de Python y tengo dos versiones: una implementación de Python pura y una extensión de C. Escribí el archivo __init__.py
para que intente importar la extensión C y, si eso falla, importa el código Python puro (¿es razonable?).Cómo crear una distribución de módulos de Python para adaptarla correctamente al código de Python puro
Ahora, me gustaría saber cuál es la mejor manera de distribuir este módulo (por ejemplo, escriba setup.py
) para que pueda ser utilizado fácilmente por personas con o sin la posibilidad de construir o usar la extensión C, solo ejecutando:
python setup.py install
Mi experiencia es limitada, pero veo dos casos posibles:
- usuario no tiene MS Visual la suite compilador GCC, instalado en su máquina de estudio, o, para construir el Extensión C
- El usuario ejecuta IronPython, Jython o cualquier otra cosa que no sea CPython. Solo he usado CPython. Así que no estoy seguro de cómo podría distribuir este módulo para que funcione sin problemas y sea fácil de instalar en esas plataformas, si no pueden usar la extensión C.
He planteado un problema sobre esto para http://guide.python-distribute.org/ - ver http://bitbucket.org/tarek/hitchhiker-guide-packaging/issue/14/ how-to-create-a-module-distribution-to-gracefully-fall-back-to-pure-python –