3 votos

No se puede ejecutar Python script desde Automator en Catalina "Operación no permitida"

Tengo un servicio en Automator al que le paso una carpeta y se ejecuta en cada archivo de la carpeta. Utiliza un script de Python para leer el campo álbum de las etiquetas id3 de un mp3 y escribirlo en el campo de comentarios del Finder:

enter image description here

Esto funcionaba bien en Mojave, escribiendo el álbum de cada archivo en su comentario. Ahora con Catalina cuando ejecuto el servicio, cada comentario se pone en lo siguiente:

/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: can't open file '/Users/thompcha/Documents/Scripts/album.py': [Errno 1] Operation not permitted
  • El script funciona bien si lo ejecuto manualmente desde el terminal
  • He concedido a Automator, Terminal y Python acceso total al disco en las Preferencias del Sistema
  • He instalado Python a través de Homebrew como se sugiere en las respuestas a preguntas similares
  • Hice el script chmod 777 y cambié el propietario a mí mismo

La respuesta encontrada aquí no me funciona porque necesito pasar la salida del script de Python al resto del shell script para su posterior ejecución.

¿Qué puedo hacer para que automator ejecute con éxito mi script de Python?

0 votos

Por favor, ¡añade el contenido de album.py (o comparte un enlace)!

0 votos

No estás ejecutando tu script con un Python Homebrew, así que cualquier cosa que Homebrew pueda haber hecho para romper las cosas no es relevante. ¿A qué intérprete de Python le diste permisos? El sistema Python 2.7 dice que no puede abrir el script. Si mueves el script fuera de la carpeta Documentos, ¿funciona ahora?

0voto

Keyslinger Puntos 116

Terminé alineando mi script de Python. El producto final tenía este aspecto:

for f in "$1"/*.mp3;
do

    updated=$(python -c "import eyed3; import sys; eyed3.log.setLevel(\"ERROR\"); filename = '$f'; from eyed3 import mp3; f = mp3.Mp3AudioFile(filename); album = f.tag.album; f.tag.comments.set(album); f.tag.save(); print(album); exit(album);")

    comment=$(mdls -r -nullMarker "" -n kMDItemFinderComment "$f")

    printf "%s ( comment ): %s\n" "${1##*/}" "$comment"

    /usr/bin/osascript -e "set filepath to POSIX file \"$f\"" \
    -e "set the_File to filepath as alias" \
    -e "tell application \"Finder\" to set the comment of the_File to \"$updated\""

done

0 votos

Esta respuesta no resuelve el problema real.

0 votos

En realidad, sí. Hace lo que el PO necesitaba hacer. Sin embargo, expone otro problema.

0 votos

Sí, no voy a escribir una pregunta completamente nueva, pero si quieres, siéntete libre de enlazarla aquí.

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