He escrito un módulo de extensión de Python en C++. Planeo distribuir el módulo con setuptools. Habrá distribuciones binarias para Windows de 32 y 64 bits (compiladas con setup.py bdist_egg
) y una distribución fuente para plataformas tipo UNIX (compiladas con setup.py sdist
).¿Cómo incluir el archivo de licencia en la secuencia de comandos setup.py?
Planeo licenciar el módulo bajo la licencia BSD. En mi árbol de fuentes, el archivo LICENSE.txt está en la carpeta superior junto con setup.py. ¿Cómo debería incluirlo en el paquete de instalación?
He probado el siguiente script setup.py:
from setuptools import setup, Extension
from glob import glob
setup(
name = 'Foo',
version = '0.1.0',
ext_modules = [Extension('Foo', glob('Source/*.cpp'))],
package_data = {'': ['LICENSE.txt']}
)
No funcionó, el archivo de licencia no está incluido en el paquete de instalación. Tal vez porque el archivo setup.py no define ningún paquete, solo un módulo de extensión único.
¿Cómo puedo solucionar esto?
"LICENSE.txt" debe ser ["LICENCIA.txt"]. La ruta "/" es la raíz del sistema en UNIX y no existe en Windows; cuando probé en Windows recibí un mensaje de error sobre una ruta no existente. Usar "" parece funcionar; cuando probé LICENSE.txt terminó en la carpeta "C: \ Python27 \ Lib \ site-packages \ Foo-0.1.0-py2.7-win32.egg", la misma carpeta que Foo.pyd – user763305
@ user763305: I edité mi respuesta con tus comentarios, lo siento. Si mi respuesta resolvió su problema, considere marcarlo como aceptado haciendo clic en la marca de verificación a la izquierda de mi respuesta. – orlp