Python Fehler beim Ausführen der Plist

Ich habe mir ein kleines Python Script geschrieben, da ich die E-Mails mit Mail nur in HTML lesen kann.


->Lesen von Mails in reinem Text format - Apple Community


Die Vorgeschichte ist, dass ich einige DSGVO-Schreiben verschickt habe und bei den empfangenen Datensätzen festgestellt habe, dass alle Mails getrackt wurden. Nun möchte ich das Tracking unterbinden und verhindern.

Nun habe ich mir ein kleines Python Script zusammengeschraubt, welches die Mails auf meinem Mac unter '/Users/david/Library/Mail/V10/*emlx' durchgeht und mir die URLS Blockiert bevor ich sie lese und diese geladen werden.


Zusätzlich habe ich eine Plist Datei erstellt, die als Cron-Job alle 30 Sekunden ausgeführt werden soll.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.david.urlblocker</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/python3</string>
<string>/Users/david/.ohmydahal/scripts/urlblocker.py</string>
</array>
<key>StartInterval</key>
<integer>30</integer>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>


Bei der Ausgabe der Logs erhalte ich nun diese Fehlermeldung:


❯ log stream --predicate 'processImagePath CONTAINS "/usr/bin/python3"'
Filtering the log data using "processImagePath CONTAINS "/usr/bin/python3""
Timestamp Thread Type Activity PID TTL
2023-05-12 20:19:00.232671+0200 0x3d3c58 Activity 0xc519c0 3305 0 python3: (libsystem_info.dylib) Retrieve User by ID
2023-05-12 20:19:00.249899+0200 0x3d3c58 Activity 0xc519c1 3305 0 python3: (libsystem_info.dylib) Membership API: translate identifier
2023-05-12 20:19:00.253784+0200 0x3d3c58 Default 0x0 3305 0 python3: (libxcrun.dylib) Failed to open macho file at /Applications/Xcode.app/Contents/Developer/usr/bin/python3 for reading: Too many levels of symbolic links
2023-05-12 20:19:01.005843+0200 0x3d3ce2 Activity 0xc51a00 3382 0 python3: (libsystem_info.dylib) Membership API: translate identifier
2023-05-12 20:19:01.009971+0200 0x3d3ce2 Default 0x0 3382 0 python3: (libxcrun.dylib) Failed to open macho file at /Applications/Xcode.app/Contents/Developer/usr/bin/python3 for reading: Too many levels of symbolic links
2023-05-12 20:19:01.047052+0200 0x3d3ce5 Activity 0xc51a10 3367 0 python3: (libsystem_info.dylib) Membership API: translate identifier
2023-05-12 20:19:01.048990+0200 0x3d3ce5 Default 0x0 3367 0 python3: (libxcrun.dylib) Failed to open macho file at /Applications/Xcode.app/Contents/Developer/usr/bin/python3 for reading: Too many levels of symbolic links
2023-05-12 20:19:10.958187+0200 0x3d3e69 Activity 0xc51dc0 3456 0 python3: (libsystem_info.dylib) Retrieve User by ID
2023-05-12 20:19:10.960527+0200 0x3d3e69 Activity 0xc51dc1 3456 0 python3: (libsystem_info.dylib) Membership API: translate identifier


Das Skript läuft manuell gestartet einwandfrei und schreibt mir meine E-Mails so, wie ich es haben möchte. Ggf könnt ihr mir weiterhelfen :)


wenn Ihr eine bessere Idee habt, immer her damit =D


Viele Liebe grüsse

David

Gepostet am 12. Mai 2023 11:44

Antworten

Ähnliche Fragen

2 Antworten

13. Mai 2023 18:20 als Antwort auf Chevi

Das in den verschiedenen Terminals nicht so funktionierte, lag an den Sicherheitsmassnahmen des Hosts, Ich habe den Terminal und VScode die Berechtigungen gegeben wodurch das script auch dort lauft.


^X2023-05-14 02:54:03.488666+0200 0x5989cf Activity    0x12688c0            87101  0    python3: (libsystem_info.dylib) Retrieve User by ID
2023-05-14 02:54:03.491721+0200 0x5989cf   Activity    0x12688c1            87101  0    python3: (libsystem_info.dylib) Membership API: translate identifier
2023-05-14 02:54:03.494660+0200 0x5989cf   Default     0x0                  87101  0    python3: (libxcrun.dylib) Failed to open macho file at /Applications/Xcode.app/Contents/Developer/usr/bin/python3 for reading: Too many levels of symbolic links

nun mehr steht noch das Problem mit der plist aus, diese habe ich etwas erweitert und schaut nun so aus:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.david.urlblocker</string>
    <key>ProgramArguments</key>
    <array>
        <string>/opt/homebrew/bin/python3.9</string>
        <string>/Users/david/Documents/projekte/David/urlblocker/app/urlblocker.py</string>
    </array>
    <key>WorkingDirectory</key>
    <string>/Users/david/Library/Mail/V10/</string>
    <key>RunAtLoad</key>
    <true/>
    <key>StartInterval</key>
    <integer>30</integer>
    <key>StandardOutPath</key>
    <string>/Users/david/Documents/projekte/David/urlblocker/log/urlblocker.log</string>
    <key>StandardErrorPath</key>
    <string>/Users/david/Documents/projekte/David/urlblocker/log/urlblocker_error.log</string>
    <key>EnvironmentVariables</key>
    <dict>
        <key>PATH</key>
        <string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
    </dict>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>


wenn ich mir die ' /usr/bin/python3' ansehe stammt diese auch aus Xcode und ist nicht die Version die ich mit Brei installiert habe:


❯ head -c 1000 /usr/bin/python3
[...]
<string>22E240</string>
	<key>DTSDKName</key>
	<string>macosx13.3.internal</string>
	<key>DTXcode</key>
	<string>1430</string>
	<key>DTXcodeBuild</key> <------ ?????? 
	<string>14E6097d</string>
	<key>LSMinimumSystemVersion</key>
	<string>13.3</string>
</dict>
</plist>
A:44�:4

 __mh_execute_header__NSGetProgname_strcmp_xcselect_invoke_xcrun_main_shim_marker/AppleInternal/Library/BuildRoots/97f6331a-ba75-11ed-a4bc-863efbbaf80d/Library/Caches/com.apple.xbs/Sources/xcode_select/src/shims/tool-shim.c/AppleInternal/Library/BuildRoots/97f6331a-ba75-11ed-a4bc-863efbbaf80d/Library/Caches/com.apple.xbs/Binaries/xcode_select/install/TempContent/Objects/xcode_select.build/tool-shim.build/Objects-normal/x86_64/tool-shim.o_main_shim_marker��
                                                                                                          �6$����
ð
[...]

die von brew installierte Version, liegt unter '/opt/homebrew/bin/python3' 3.9/3.10/3.11

auch kann ich die '/usr/bin/python3' nicht löschen/verschieben, um einen symlink von '/opt/homebrew/bin/python3' nach /usr/bin/python3 zu erstellen weder mit sudo noch mit root...


auf einer chinesischen Seite wurde dieses Problem auch schon beschrieben Gott sei Dank gibt es die Translationfunktion in Safari ^^


https://blog.csdn.net/qq_15289761/article/details/107082908


leider hat mir das noch nicht weitergeholfen, auf auf stackoverflow gibt es bislang nur eine Meldung :/


hat vielleicht noch jemand von euch eine Idee


liebe grüsse

David

13. Mai 2023 02:57 als Antwort auf Chevi

Hier ist eine Erweiterung zu dem, was ich jetzt herausgefunden habe: In der normalen Terminal-App startet das Skript nicht wie es soll. Allerdings funktioniert es in Term2. Ich habe bash und zsh verwendet.


Das Problem Tritt bei beiden auf:


/usr/bin/python3
/Applications/Xcode.app/Contents/Developer/usr/bin/python3 


Auch frage ich mich weshalb Python3 aus Xcode verwendet wird und nicht das aus der /usr/bin wie ich es in der .plist definiert habe.


standardmässig wird `/usr/bin/python3` verwendet


  • oben ist der Log zu sehen, unten wie das script durch lauft


  • im Standart Terminal bekomme ich das Script nicht zum starten
  • Ebenso im vscode ist es über den Terminal nicht zu starten:


viele liebe grüsse

David

Dieser Thread wurde vom System oder dem Community-Team geschlossen. Du kannst alle Beiträge positiv bewerten, die du hilfreich findest, oder in der Community nach weiteren Antworten suchen.

Python Fehler beim Ausführen der Plist

Willkommen in der Apple Support Community
Ein Forum, in dem Apple-Kunden sich gegenseitig mit ihren Produkten helfen. Melde dich mit deinem Apple Account an, um Mitglied zu werden.