para mac instalar descargar python packaging remote-access downloading software-update

mac - Cómo actualizar remotamente las aplicaciones Python



python download (2)

Si aún no está empaquetando su programa con InnoSetup , le recomiendo encarecidamente que lo cambie, ya que tiene facilidades para facilitar este tipo de cosas. Puede especificar cualquier situación especial, como archivos que no deberían actualizarse si ya existen (es decir, si tiene algún archivo de configuración interna o algo así), en el script InnoSetup.

A continuación, para permitir que la máquina cliente descubra las nuevas versiones de su aplicación, mantenga un archivo muy pequeño en su servidor web público que tenga el número de versión de la versión actual y la URL del exe instalador de la última versión. Para que este archivo sea útil, siempre que lance una versión más reciente de su programa, debe actualizar este archivo, así como el número de versión en el script InnoSetup, y también algún tipo de constante APP_VERSION en su programa.

Luego, deberá manejar estas partes del actualizador usted mismo:

  1. Detectar cuándo está disponible una versión más reciente recuperando el archivo de la versión actual de su servidor web a través de HTTP y comparando el número de la versión allí con la APP_VERSION de la aplicación. Asegúrese de realizar esta consulta de manera que falle correctamente si la máquina cliente no tiene acceso a Internet, y no bloquea la GUI mientras realiza la solicitud (en caso de que haya un problema de red que obligue a la consulta a esperar) un largo tiempo para un tiempo de espera).
  2. Si hay una versión más nueva disponible, pregúntele al usuario si desea actualizar, y si dice que sí, está descargando un instalador actualizado al directorio TEMP. Según el kit de herramientas de GUI que esté utilizando, hay varios mecanismos para mostrar un diálogo de progreso durante la descarga; esta es una buena idea ya que es probable que el instalador tenga al menos un MB.
  3. Cierre su aplicación, ejecute un script de actualización especial en segundo plano y luego vuelva a iniciar la aplicación.

La secuencia de comandos de actualización esperará a que el proceso original se agote por completo (la forma más sencilla de hacerlo es pasar el PID del proceso original como un argumento de la línea de comandos y hacer que la secuencia de comandos de actualización envíe una señal de consulta 0 a ese proceso cada segundo aproximadamente) desaparece.) A continuación, puede ejecutar el instalador de forma silenciosa en segundo plano, tal vez mientras muestra un cuadro de diálogo "Por favor, espere ..." al usuario. Una vez que el instalador haya terminado e informe el éxito en su código de retorno, el actualizador puede reiniciar su programa.

Dependiendo de cuán grande sea su aplicación, esto es más desperdicio de ancho de banda que el método que usa git u otro SCM. Cada actualización con este enfoque implicaría descargar el instalador completo para la última versión de la aplicación, mientras que un SCM solo descargaría los archivos que han cambiado. Sin embargo, tiene la ventaja de que no requiere instalaciones de servidor especiales, excepto un servidor web normal, y no requiere una instalación especial del cliente SCM en la computadora del usuario.

Además, InnoSetup es generalmente genial. :-)

¿Cuál es el mejor método para enviar cambios a un programa escrito en Python? Tengo un software que está escrito en Python que se actualizará regularmente. Cuál sería la mejor forma de hacer esto? Todas las máquinas tendrán Windows 7.

Además, disculpe la ambigüedad de mi pregunta. Esta será la primera vez que tenga que implementar un procedimiento de actualización. Siéntase libre de mencionar los detalles que desea agregar.


Yo sugeriría usar un programa de control de fuente como git o subversion. Además, si estás de acuerdo con que todos vean el código, puedes publicar el código en github, donde cualquiera puede extraerlo. Podría hacerlo privado, pero tendría que pagarlo y todos los usuarios también tendrían que crear una cuenta de github y configurarla con su instalación de git.

Si usa un programa de control de código fuente, las otras personas tendrán que arrastrar las ediciones manualmente ejecutando un comando, pero puede crear un archivo de proceso por lotes de script que haga esto y ejecutarlo al inicio o en intervalos regulares.

Para que quede claro, si desea hacer esto, tendrá que colocar el código en un servidor con SSH y configurar git. Si no quieres completar toda la configuración del servidor, te recomendaría github.

git- http://git-scm.com/ (Para la versión de Windows, vaya a descargas y seleccione msysGit)

github - https://github.com/