2 votos

¿Por qué mi programa zsh se ejecuta bien en la terminal, pero no como una aplicación de automatización?

Me compré un mac la semana pasada y estoy tratando de aprender lo básico codificando algunos proyectos que se me ocurrieron. He estado creando unas cuantas aplicaciones que puedo colocar en el dock y que automatizan funciones simples que uso a menudo. Hasta ahora, todos mis programas han funcionado mediante la creación de un zsh script y conseguir Automator para 'Ejecutar Shell script', sin embargo, este programa en particular no está funcionando completamente, aunque, si ejecuto mi programa a través de la terminal, funciona perfectamente.

Estoy tratando de crear un programa que pueda ser ejecutado después de que una url de YouTube haya sido copiada en el portapapeles. El programa toma la url y la ejecuta a través de 'youtube-dl' y descarga el audio en la carpeta de descargas. Intenté aprender a hacer esto sólo con Z shell, pero me abrumó mucho y decidí usar Python que ya conozco.

Esto es lo que estoy haciendo:

Mi código Python3:

import os

url = os.popen("echo `pbpaste`").read()
os.system("youtube-dl -f 'bestaudio[ext=m4a]' '"+url+"'")

Mi archivo zsh:

#!/bin/zsh

cd /Users/admin/Downloads
python3 /Users/admin/Documents/Scripts/Automation/ytGetAudio/ytGetAudio.py

Luego lo hice ejecutable con "chmod +x /Users/admin/Documents/scripts/Automation/ytGetAudio/ytGetAudio.zsh"

Cuando ejecuto mi programa desde la terminal, todo funciona de maravilla, y el archivo se descarga en Descargas, pero cuando uso Automator para "Ejecutar Shell script" y consigo que se ejecute el mismo zsh scriptno descarga nada. Lo he probado creando un cuadro de mensaje emergente en el Python script; eso ha funcionado, así que el script se está ejecutando, pero algo no está funcionando porque no se descarga nada cuando ejecuto el archivo '.app'.

¿Puede alguien ayudarme con esto?

2voto

Alfie Stoppani Puntos 39

Gracias a las respuestas que obtuve sobre los caminos, pude resolverlo. Me llevó a esto: Mi flujo de trabajo de Automator falla porque no encuentra el comando git dentro del comando 'Run Shell script'. Necesito ayuda que resolvió todo.

Se ha añadido lo siguiente al inicio del script:

export PATH=/usr/local/bin:$PATH

1voto

yoliho Puntos 340

Este es el problema estándar con las aplicaciones GUI en MacOS/ Estas se lanzan a través de lanuchd desde el escritorio, ninguna parte del proceso se ha ejecutado a través de un shell por lo que lo que está en cualquiera de sus shell start up scripts por ejemplo $PATH no importa.

Lo que tienes que hacer es usar la ruta completa a cualquier cosa que llames en tu caso la ruta completa a youtube-dl y si eso es un scrip[t que podría necesitar ser editado para proporcionar rutas completas a lo que llama.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X