script run program make how from create python linux

run - Aplicaciones autónomas de Python en Linux



run python script linux (8)

Es posible que desee ver las declaraciones de dependencia en las herramientas de configuración . Esto podría proporcionar una forma de garantizar que los paquetes correctos estén disponibles en el entorno o que alguien más pueda instalarlos con los privilegios adecuados.

¿Cómo puedo distribuir una aplicación Python independiente en Linux?

Creo que puedo dar por sentada la presencia de un intérprete reciente de Python en cualquier distribución moderna. El problema es tratar con aquellas bibliotecas que no pertenecen a la biblioteca estándar, es decir, wxPython, scipy, python criptographic toolkit, reportlab, etc.

¿Hay una contraparte Linux funcional para, por ejemplo, py2exe (que, por cierto, nunca he intentado)? ¿Hay uno gratuito, de código abierto?


Cree un deb (para todo lo derivado de Debian) y un rpm (para Fedora / SuSE). Agregue las dependencias correctas al embalaje y puede estar razonablemente seguro de que funcionará.


No puede hacerlo fácilmente en un formato de distribución neutral. Los únicos mecanismos de seguimiento de dependencias confiables están incorporados en los sistemas de administración de paquetes en las distribuciones y varían de la distribución a la distribución. Efectivamente tendrá que hacer rpm para fedora, debuts para ubuntu y debian, etc.

Py2exe funciona bien en Windows. Construye una distribución con todas las DLL necesarias y un contenedor para el intérprete de Python que inicia su programa. Es bastante fácil de instalar, simplemente colóquelo en un directorio, por lo que hacer un archivo msi es trivial.


Nop.

Python es notoriamente escamosa con respecto a diferentes configuraciones. La única forma sensata de implementar una aplicación de Python es enviar todo el paquete de intérpretes y bibliotecas en el que confía con su código. Eso probablemente funcionará.


SetupTools es excesivo para mí ya que el uso de mi programa es bastante limitado, así que aquí está mi alternativa local.

Incluyo un directorio de "terceros" que incluye todos los requisitos previos y uso site.addsitedir para que no necesiten instalarse globalmente.

# program startup code import os import sys import site path = os.path.abspath(os.path.dirname(__file__)) ver = ''python%d.%d'' % sys.version_info[:2] thirdparty = os.path.join(path, ''third-party'', ''lib'', ver, ''site-packages'') site.addsitedir(thirdparty)

La mayoría de mis prerregistros tienen instaladores de setup.py. Cada módulo incluido tiene su propio proceso de "instalación", por lo que cualquier material personalizado (por ejemplo, ./configure) se puede ejecutar automáticamente. Mi script de instalación ejecuta este makefile como parte del proceso de instalación.

# sample third-party/Makefile PYTHON_VER = `python -c "import sys; / print ''python%d.%d'' % sys.version_info[:2]"` PYTHON_PATH = lib/$(PYTHON_VER)/site-packages MODS = egenix-mx-base-3.0.0 # etc .PHONY: all init clean realclean $(MODS) all: $(MODS) $(MODS): init init: mkdir -p bin mkdir -p $(PYTHON_PATH) clean: rm -rf $(MODS) realclean: clean rm -rf bin rm -rf lib egenix-mx-base-3.0.0: tar xzf [email protected] cd $@ && python setup.py install --prefix=.. rm -rf $@



Puede usar cx_Freeze para hacer esto. Es como py2exe (agrupa el intérprete y el guión de inicio y todas las bibliotecas y módulos necesarios), pero funciona tanto en Linux como en Windows.

Recoge las dependencias del entorno en el que se ejecuta, lo que significa que también deben ser adecuadas para el destino. Si está haciendo algo como construir en Debian de 32 bits y desplegar en otro Debian de 32 bits, está bien. Puede manejar las diferencias de 32/64 bits construyendo múltiples versiones en entornos apropiados (por ejemplo, 32 bits y 64 bits chroots) y distribuyendo el correspondiente. Si quieres algo más genérico (por ejemplo, construir en Debian, implementar en cualquier distribución), entonces esto se vuelve un poco oscuro, dependiendo de cuáles sean tus dependencias.

Si está haciendo una distribución bastante sencilla (es decir, sabe que su entorno de compilación y entornos de despliegue son similares), esto evita el paso bastante complejo rpm / deb / egg / etc (usar cx_Freeze es muy fácil, especialmente si está familiar con py2exe). De lo contrario, cualquier cosa, desde instalar tu propio instalador de dependencias hasta el edificio deb / rpm / egg / etc, funcionará, dependiendo de la cantidad de trabajo que quieras hacer, la flexibilidad con las versiones requeridas que quieras ofrecer y las dependencias.


Creo que se puede dar por hecho que python admite con total seguridad la mayoría de las distribuciones Linux modernas; para las que no lo tienen, siempre que se proporcione un mensaje de error, los usuarios probablemente puedan trabajar cómo hacerlo por sí mismos (se puede usar un simple script de inicio bash para esto):

#!/bin/bash if [ -e /usr/bin/python ] then echo "Python found!" else echo "Python missing!" fi