0 votes

LaunchAgents exécute le script Python en version 2

Peut-être que quelqu'un peut expliquer cela. J'ai demandé à LaunchAgents d'exécuter un script Python au démarrage. La partie pertinente de la plist ressemble à :

<key>ProgramArguments</key>
<array>
    <string>python</string>
    <string>/Volumes/path to script

Cela lance le script dans python2, malgré le fait que "Python" pointe vers python3 :

/usr/local/bin/python -> /Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8

qui se trompe parce que launchd exécute un script de python3 en python2. Pour le corriger, j'ai dû spécifier python3 :

<key>ProgramArguments</key>
<array>
    <string>python3</string>
    <string>/Volumes/

Est-ce que je fais ça bien ? Est-ce que python2 est codé dans launchd quelque part ? Y a-t-il une raison pour laquelle je dois encore spécifier python3 ?

1voto

benwiggy Points 21125

Comme mentionné dans les commentaires, vous pouvez utiliser les chemins complets dans le XML, par exemple :

<string>/usr/local/bin/python</string>

launchd n'est pas conscient des variables environnementales, comme $. PATH à moins qu'elle ne soit explicitement définie dans le XML, donc python serait par défaut /usr/bin/python .

https://serverfault.com/questions/111391/use-an-environment-variable-in-a-launchd-script

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X