Hola,
tengo un pequeño problema con esta función.
Necesito instalar un archivo desde un .exe, al cual debo proporcionar el parámetro /verysilent para la instalación silenciosa.
Dado que la función install_exe_if_needed no parece permitir agregar parámetros (como sí lo hace install_msi_if_needed con propiedades), estoy usando run_as_administrator(myfile.exe, params="/verysilent").
A continuación, necesito copiar archivos al directorio donde se instaló el software, por lo que la instalación debe estar completa para que exista la ruta de copia. Por lo tanto, estoy usando wait_uninstallkey_present() con la clave de desinstalación.
Finalmente, necesito ejecutar un archivo .exe ubicado en el directorio de instalación para iniciar el servicio en la PC.
Dado que este .exe no devuelve un código de salida, estoy usando run_nofatal() para evitar un error.
Mi problema es que mi archivo .exe se ejecuta correctamente porque veo que el servicio aparece en mi máquina, pero el print("starting OK") que agrego inmediatamente después nunca se muestra; Por lo tanto, la ejecución de la instalación nunca finaliza.
¿Acaso el propósito de esta función no es precisamente ejecutarse y salir sin esperar nada?
[RESUELTO] run_nofatal() nunca termina
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
- Sfonteneau
- Experto en WAPT
- Mensajes: 2312
- Registrado: 10 de julio de 2014 - 23:52
- Contacto :
Puedes enviar tu archivo setup.py; eso será más sencillosebastien4444 escribió: ↑7 de junio de 2024 - 17:58 Dado que la función install_exe_if_needed no parece permitir agregar parámetros (como sí lo hace install_msi_if_needed con las propiedades), uso run_as_administrator(myfile.exe, params="/verysilent").
y si install_exe_if_needed permite agregar un argumento con silentflags:
Ejemplo con VLC:
Código: Seleccionar todo
install_exe_if_needed("vlcsetup.exe",silentflags="/S",key="VLC media player",min_version="3.0.20")run_as_administrator no debe usarse en paquetes ya que wapt inicia una cuenta del sistema y, por lo tanto, no es necesario.
solo usa ejecutar
-
sebastien4444
- Mensajes: 22
- Inscripción: 14 de septiembre de 2023 - 08:53
Hola,
gracias por sus comentarios.
Efectivamente, durante la instalación no me había percatado de la presencia del parámetro `silencioso` en `install_exe_if_needed`.
Sin embargo, esto no resuelve mi problema al ejecutar el archivo .exe.
Al usar `run()` en lugar de `run_as_administrator()`, mi servicio se inicia (como cuando usaba `run_nofatal`), pero la ejecución del script se bloquea en esa línea y, por lo tanto, no finaliza (así que si compilo el paquete tal cual y lo implemento en un PC, la instalación nunca se completa).
Gracias de antemano por sus comentarios.
gracias por sus comentarios.
Efectivamente, durante la instalación no me había percatado de la presencia del parámetro `silencioso` en `install_exe_if_needed`.
Sin embargo, esto no resuelve mi problema al ejecutar el archivo .exe.
Al usar `run()` en lugar de `run_as_administrator()`, mi servicio se inicia (como cuando usaba `run_nofatal`), pero la ejecución del script se bloquea en esa línea y, por lo tanto, no finaliza (así que si compilo el paquete tal cual y lo implemento en un PC, la instalación nunca se completa).
Gracias de antemano por sus comentarios.
- Sfonteneau
- Experto en WAPT
- Mensajes: 2312
- Registrado: 10 de julio de 2014 - 23:52
- Contacto :
Puedes enviar tu archivo setup.py; eso será más sencillo 
-
sebastien4444
- Mensajes: 22
- Inscripción: 14 de septiembre de 2023 - 08:53
Buen día,
Así es como se ve:
El software se instala, el archivo de configuración se copia correctamente, el servicio se inicia correctamente pero nunca se llega a la declaración de impresión "Servicio iniciado" y el script solo finaliza después del tiempo de espera (y, por lo tanto, con un error).
Así es como se ve:
Código: Seleccionar todo
from setuphelpers import *
def install():
install_exe = "UltraVNC Installer.exe"
config_file = "ultravnc.ini"
install_path = makepath("C:","Program Files","uvnc bvba","UltraVNC")
service_path = makepath("C:","Program Files","uvnc bvba","UltraVNC","winvnc.exe")
install_exe_if_needed(install_exe, , silentflags="/verysilent", key="Ultravnc2_is1")
print("VNC installé")
filecopyto(config_file, install_path)
print("Config copiée")
run(service_path)
print("Service lancé")
- dcardón
- Experto en WAPT
- Mensajes: 1908
- Inscripción: 18 de junio de 2014 - 09:58
- Ubicación: Saint Sébastien sur Loire
- Contacto :
Hola Sébastien,
es muy probable que la ejecución de "winvnc.exe" no esté devolviendo el control (básicamente, no se está ejecutando como un servicio) y, por lo tanto, la función run() no lo esté devolviendo. Tras el tiempo de espera, se detendrá el proceso ejecutable winvnc.exe y el paquete generará un error.
Probablemente exista una forma de declarar winvnc como un servicio y ejecutarlo como tal para evitar este problema de bloqueo.
Saludos,
Denis
es muy probable que la ejecución de "winvnc.exe" no esté devolviendo el control (básicamente, no se está ejecutando como un servicio) y, por lo tanto, la función run() no lo esté devolviendo. Tras el tiempo de espera, se detendrá el proceso ejecutable winvnc.exe y el paquete generará un error.
Probablemente exista una forma de declarar winvnc como un servicio y ejecutarlo como tal para evitar este problema de bloqueo.
Saludos,
Denis
Denis Cardon - Tranquil IT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
-
sebastien4444
- Mensajes: 22
- Inscripción: 14 de septiembre de 2023 - 08:53
Hola,
gracias por tu respuesta.
Sí, es eso, en cuanto se produce el error, el programa se detiene.
He probado diferentes funciones de Python de varias bibliotecas que permiten la ejecución de archivos, y no cambia nada.
Lo extraño es que ejecutar winvnc.exe desde la línea de comandos no causa este problema: el programa se inicia, aparece la línea de comandos casi al instante y el programa permanece activo.
Pensaba que las funciones de ejecución en Python eran lo mismo que ejecutar un comando en la línea de comandos.
Bueno, lo intentaré de otra manera. Gracias de nuevo.
gracias por tu respuesta.
Sí, es eso, en cuanto se produce el error, el programa se detiene.
He probado diferentes funciones de Python de varias bibliotecas que permiten la ejecución de archivos, y no cambia nada.
Lo extraño es que ejecutar winvnc.exe desde la línea de comandos no causa este problema: el programa se inicia, aparece la línea de comandos casi al instante y el programa permanece activo.
Pensaba que las funciones de ejecución en Python eran lo mismo que ejecutar un comando en la línea de comandos.
Bueno, lo intentaré de otra manera. Gracias de nuevo.
- dcardón
- Experto en WAPT
- Mensajes: 1908
- Inscripción: 18 de junio de 2014 - 09:58
- Ubicación: Saint Sébastien sur Loire
- Contacto :
Hola de nuevo Sébastien,
¿has echado un vistazo al paquete que tenemos en la tienda
https://wapt.tranquil.it/store/en/detai ... _PROD.wapt?
Si el objetivo es ejecutarlo como un servicio, esta es la mejor manera de hacerlo.
De lo contrario, si realmente necesitas replicar el comportamiento de ejecutar un comando en segundo plano, puedes consultar la línea de comandos "start".
Saludos cordiales,
Denis
¿has echado un vistazo al paquete que tenemos en la tienda
https://wapt.tranquil.it/store/en/detai ... _PROD.wapt?
Si el objetivo es ejecutarlo como un servicio, esta es la mejor manera de hacerlo.
De lo contrario, si realmente necesitas replicar el comportamiento de ejecutar un comando en segundo plano, puedes consultar la línea de comandos "start".
Saludos cordiales,
Denis
Denis Cardon - Tranquil IT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
-
sebastien4444
- Mensajes: 22
- Inscripción: 14 de septiembre de 2023 - 08:53
¡Genial, gracias!
Al revisar el archivo setup.py de tu paquete, vi que necesitaba agregar el parámetro "-install" a la ejecución de winvnc.exe (que en realidad está en la documentación de "Línea de comandos" de UltraVNC, pero lo había pasado por alto
).
Al revisar el archivo setup.py de tu paquete, vi que necesitaba agregar el parámetro "-install" a la ejecución de winvnc.exe (que en realidad está en la documentación de "Línea de comandos" de UltraVNC, pero lo había pasado por alto
- dcardón
- Experto en WAPT
- Mensajes: 1908
- Inscripción: 18 de junio de 2014 - 09:58
- Ubicación: Saint Sébastien sur Loire
- Contacto :
Hola Sébastien,
gracias por tus comentarios
. Me alegra que hayas encontrado una solución.
No dudes en recomendar WAPT; ¡también se difunde mucho de boca en boca
!
Un cordial saludo,
Denis
gracias por tus comentarios
No dudes en recomendar WAPT; ¡también se difunde mucho de boca en boca
Un cordial saludo,
Denis
Denis Cardon - Tranquil IT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
