it-swarm-es.com

Configuración de un sistema de compilación para la aplicación Python

Al tratar de resolver el problema este , me he encontrado con el siguiente problema.

Tengo una secuencia de comandos Python que se instala en /usr/lib/. Pero necesito obtener este script en un sistema de compilación para que pueda funcionar con mi paquete.

Cualquier ayuda sería apreciada. Aunque he trabajado un poco con Makefiles al escribir aplicaciones C++ antes, nunca he creado ningún tipo de Makefile para archivos Python (ni siquiera sé por dónde empezar).

¿Cómo haría para configurar un sistema de compilación para mi aplicación?

3
Nathan Osman

Bueno, como expliqué en la otra pregunta, no necesita un sistema de compilación y, en ese caso particular, puede estar mejor sin uno.

Sin embargo, el más estándar es distutils . Solo proporcione los metadatos (es decir, nombre, descripción, etc.) y una lista de paquetes, módulos y scripts (python) (todos son opcionales) y listo.

Finalmente, si desea generar un paquete de Debian a partir de su proyecto, puede hacerlo fácilmente usando python-stdeb (usa dh7, que me gusta más) o python-mkdebian (usa cdbs). Hay muchas más diferencias entre estas herramientas, pero te dejaré descubrirlas tú mismo. Solo tenga en cuenta que ambos requieren el uso de distutils. (python-mkdebian es parte del paquete python-distutils-extra en Ubuntu, no he usado -extra mucho, pero puedes probarlo también si quieres)

6
Umang

Scons es un sistema de compilación que utiliza Python como lenguaje (generalmente lo prefiero a los makefiles para cualquier proyecto), creo que debería ser capaz de lo que quieres hacer.

Tiene una muy buena Guía del usuario .

0
thbusch

Umang tiene la respuesta correcta, aunque tal vez no con tanto detalle como parece necesitar como un principiante completo.

Para un programa Python, debe comenzar creando un archivo setup.py. La mayor parte del archivo será una llamada a distutils.core.setup - esto se discute en detalle en parte 2 de la documentación de distutils .

Todos los demás sistemas de empaquetado para Python (como py2exe, setuptools o Distribute) se compilan sobre el paquete distutils, generalmente extendiendo setup() de alguna manera (con parámetros adicionales o comandos).

Antes de convertir esto en un paquete de Ubuntu, puede probar el script de configuración ejecutando Sudo setup.py install. Debe instalar los archivos en sus ubicaciones esperadas; si no es así, es posible que deba verificar su configuración. En particular, las secciones 2.5 (scripts) y 2.6 (datos del paquete) de la documentación distutils probablemente se apliquen a su situación.

Una vez hecho esto, puede ver las capas en el paquete de Ubuntu de acuerdo con Guía de paquete de Ubuntu para Python . Las herramientas python-stdeb y python-mkdebian sugeridas por Umang simplifican la generación de los diversos archivos necesarios para el empaquetado de Ubuntu.

0
jbowtie

Asegúrese de revisar:

http://pypi.python.org/pypi/modern-package-template/1. Para un buen diseño de paquete predeterminado que incluye un archivo starter setup.py

http://pypi.python.org/pypi/virtualenv Para bloquear su entorno de desarrollo del resto de su sistema. Ejecutando algo como

python setup.py desarrollar

Construirá/configurará su comando en su virtualenv para que pueda probarlo.

0
Rick