Pasar un archivo C a setup.py por ruta relativa

¿Cómo puedo pasar la ruta relativa del archivo hello.c en mi script setup.py? El siguiente código no funciona cuando se usa '../code/Hello.c'. Recibo un error total: error al escribir en -: Compilación de tubería rota finalizada. El error no es reproducible, por lo que es probable que sea un problema de hardware o sistema operativo

Por ejemplo: estoy ejecutando este script en el directorio script/ y hello.c está presente en el directorio code/:

from distutils.core import setup, Extension
module1 = Extension('Hello', sources = ['../code/Hello.c'])

Setup (name = 'PackageName',
    version = '1.0',
    description = 'This is a demo package',
    ext_modules = [module1])

preguntado el 04 de julio de 12 a las 07:07

¿Esto no funciona? ¿Está recibiendo algún error? ¿Podría ser más específico sobre los problemas que está enfrentando? -

1 Respuestas

Sí, puede pasar rutas relativas a su archivo fuente en la clase Extension. Sin embargo, ese no es realmente un enfoque recomendado. Es una buena idea asegurarse de escribir setup.py en el nivel raíz de su árbol de directorios de origen y que sus referencias estén debajo de eso. En ese caso, las rutas relativas que especifique, utilizando el separador de rutas de Unix, también serán independientes de la plataforma.

Respondido 04 Jul 12, 07:07

Estoy haciendo esto module1 = Extension('Hello', sources = ['../code/Hello.c']) . - Jaysh

Como no tengo acceso al directorio raíz en Linux, ejecuto el comando python setup.py desde otro directorio donde he codificado el código hello.c. está dando el error al usar la ruta de los parientes. - Jaysh

Espero que tenga acceso a la carpeta que contiene setup.py, en ese caso, simplemente cree code/Hello.c y luego ejecute setup.py - Senthil Kumaran

Puedo hacer eso, pero tengo que mantener la estructura de directorio particular, por eso quiero usar [../code/Hello.c]. - Jaysh

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.