Ich habe ein Python3
Skript, das ich geschrieben habe; das nutzt tkinter
Öffnen eines Fensters, in dem Benutzer aufgefordert werden, eine Verbindung zu freigegebenen Ressourcen herzustellen.
Das funktioniert alles in Ordnung, und ich führe es normalerweise von einem Terminal aus.
Ich möchte dies in eine Folie einwickeln .app
Damit wird es in Launcher angezeigt und kann von anderen Personen in meiner Familie verwendet werden, die der Befehlszeile ablehnen.
In der Vergangenheit habe ich eine verwendet Automator
Bewerbung mit Run Shell Script
Shell auswählen /usr/bin/python
, jedoch macOS
beinhaltet nicht Python3
Daher habe ich Python 3.6.4 installiert und kann anscheinend keine Möglichkeit finden, eine Python3-Shell auszuführen.
Ich habe versucht, mein normales Shell-Skript zu verwenden.
#! /usr/bin/env python3
from tkinter import *
from tkinter import ttk
import os
Dies erzeugt eine Reihe von Fehlern:
The action “Run Shell Script” encountered an error: “from: can't read /var/mail/tkinter
from: can't read /var/mail/tkinter
-: line 5: import: command not found
Ich habe eine Reihe anderer Optionen ausprobiert, darunter /usr/bin/env python3
The action “Run Shell Script” encountered an error: “env: python3: No such file or directory
from: can't read /var/mail/tkinter
from: can't read /var/mail/tkinter
/Users/ian/bin/connect.py: line 5: import: command not found
und habe endlich damit gearbeitet: -
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3 /Users/ian/bin/connect.py
Dies ist ziemlich umständlich und erfordert, dass sich das Skript in einer externen Datei befindet.
Ich bin auf der Suche nach einer Lösung, vergleichbar mit dem laufenden Skript python2.
Ich bin mir nicht sicher, ob dies auf dieser Site oder bei Stack Overflow gefragt werden soll.
quelle
PATH
Problem, weil die Wert vonPATH
unterscheidet sich normalerweise zwischen den beiden, wenn nicht standardmäßige Programme und Programme von Drittanbietern beteiligt sind. DasPATH
übergeben an a Führen Sie Shell Script aus Aktion im Automator ist/usr/bin:/bin:/usr/sbin:/sbin
noch in Terminal dasPATH
Auf meinem System befinden sich weitere Verzeichnisse aus der Installation von Nicht-Standard- und Drittanbieterprogrammen. Die Verwendung der vollständig qualifizierte Pfadnamen kann daher erforderlich sein Automator .