it-swarm.com.de

Aufrufen von Python und Spyder unter OSX

Ich habe kürzlich ein MacBook gekauft und Python über Anaconda darauf installiert. Hier ist die Versionsinformation:

Python 2.7.6 |Anaconda 1.8.0 (x86_64)| (default, Nov 11 2013, 10:49:09) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin

Ich hätte gerne folgende Möglichkeiten:

  1. Starten Sie Spyder, ohne die Launcher-Anwendung durchlaufen zu müssen (indem Sie beispielsweise Dinge in Spotlight und Quicksilver eingeben).
  2. Führen Sie den Python-Code über den Finder aus, vermutlich durch Doppelklick auf meine .py-Datei oder durch Auswahl von und und Drücken von Cmd-O
  3. Führen Sie Python-Code aus, indem Sie den Namen eines Python-Skripts in Quicksilver eingeben (als wäre es ein normales Programm).

Folgendes habe ich ausprobiert:

  1. (nichts; hier keine ideen)
  2. Ich habe .py-Dateien mit /Users/kuzzooroo/anaconda/python.app/Contents/MacOS/python in Verbindung gebracht und ausführbar gemacht (chmod u + x). Wenn ich versuche, die Anwendung auszuführen, wird sie nie gestartet und ich bekomme keine Fehlermeldung (weiß nicht, wo sie suchen soll)
  3. Er hat die Dateien ausführbar gemacht und versucht, sie über Spotlight auszuführen. Gleiches Ergebnis wie bei # 2.

Folgendes mache ich can:

  • Führen Sie meinen Code aus einem Terminalfenster aus, wenn ich den richtigen Shebang oben habe und die Datei ausführbar gemacht habe
  • Generieren Sie eine Anwendung mit py2app. Leider hat diese Methode die folgenden Nachteile:
    • Ich ändere häufig meine Skripte und möchte py2app nicht jedes Mal ausführen
    • Selbst für ein triviales Skript beträgt die resultierende App 7 MB
    • Um die Anwendung in einigen Kontexten auszuführen, muss ich im Bundle nach dem "Unix Executable File" suchen und es stattdessen ausführen

Sobald das funktioniert, interessiere ich mich für Folgendes:
EIN. Festlegen, welche Skripts beim Ausführen ein Konsolenfenster erstellen und welche nicht
B. Festlegen, ob das resultierende Konsolenfenster verschwindet, wenn das Skript abgeschlossen ist oder darauf wartet, dass der Benutzer (ich) es schließt
Ich vermute jedoch, dass es leicht sein kann, herauszufinden, wie das geht (oder ob es möglich ist), sobald ich herausgefunden habe, wie ich meine Skripte überhaupt erst aufrufen kann.

21
kuzzooroo

So machen Sie den Spyder von Spotlight oder Finder aus aufrufbar:

  1. Finden Sie heraus, wo sich Ihre ausführbare Spyder-Datei befindet, indem Sie in Terminal ausführen:

    which spyder
    

    Dies sollte ~/anaconda/bin/spyder ergeben, wenn Sie spyder über Anaconda installiert haben, /opt/local/bin/spyder, wenn Sie MacPorts oder ähnliches verwendet haben.

  2. Erstellen Sie eine Datei mit dem Namen spyder in Ihrem Applications-Verzeichnis und machen Sie sie ausführbar. Füllen Sie dann die Ausgabe des vorherigen Befehls gefolgt von einem &; exit:

    touch /Applications/spyder
    chmod +x /Applications/spyder
    echo -e '#!/bin/bash'"\n~/anaconda/bin/spyder &\nexit" >> /Applications/spyder
    
  3. Unter Terminal -> Einstellungen -> Profile -> "Standardprofil" -> Shell -> Wenn die Shell beendet wird: Wählen Sie "Schließen, wenn die Shell sauber beendet wurde".

Wahlweise:

  1. Laden Sie das Spyder-Icon von here herunter und öffnen Sie es in der Vorschau. Kopieren Sie den Inhalt durch Drücken von cmd + C.

  2. Suchen Sie im Finder nach /Applications/spyder, und öffnen Sie den Bereich "Informationen", indem Sie cmd + I drücken. Wählen Sie mit der Maus das Symbol in der oberen linken Ecke aus und drücken Sie cmd + V.

60
Thomas

Die akzeptierte Antwort hat zwei Nachteile: Ein Konsolenfenster wird beim Starten von spyder angezeigt und eines kann kein Spyder-Symbol im Dock behalten. Diese Drawbakcs können vermieden werden, indem ein ordnungsgemäßes Mac-Anwendungspaket für Spyder erstellt wird. Dies ist überraschend einfach.

So konvertieren Sie /usr/local/bin/spyder3 (das Ergebnis von which spyder3 auf meinem Computer) in eine herkömmliche Mac-Anwendung:

  1. Erstellen Sie ein Mac-Anwendungspaket (im Wesentlichen eine Ordnerstruktur, die eine ausführbare Datei enthält):

    cd /Applications
    mkdir -p spyder.app/Contents/MacOS
    echo -e '#!/bin/bash'"\n /usr/local/bin/spyder3 [email protected]" >> spyder.app/Contents/MacOS/spyder
    chmod +x spyder.app/Contents/MacOS/spyder
    
  2. Erstellen Sie eine Klartextdatei mit dem Namen "Info.plist" im Ordner "Contents" (d. H. Bei spyder.app/Contents/Info.plist) mit folgendem Inhalt:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
    <plist version="0.9">
    <dict>
    <key>CFBundleExecutable</key>
    <string>spyder</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>3.1.4</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleVersion</key>
    <string>3.1.4</string>
    </dict>
    </plist>
    
  3. (Optional) Erstellen Sie ein App-Symbol wie in Schritt 4 und 5 der akzeptierten Antwort.

Voilà, spyder ist plötzlich viel freundlicher geworden!

EDIT
Man kann die Mac-Freundlichkeit von Spyder weiter verbessern durch:

  1. Verhindern, dass das generische Python-Raketensymbol neben dem Spyder-Symbol angezeigt wird
    Deaktivieren Sie dazu in spyder die Option Tools -> Preferences -> iPython Console -> Graphics -> Activate (matplotlib)

  2. Spyder zum Standardeditor für .py-Dateien machen.
    Dieser ist schwieriger. Stellen Sie zunächst sicher, dass der Inhalt von spyder.app/Contents/MacOS/spyder gelesen wird

    #!/bin/bash
    /usr/local/bin/spyder [email protected]
    

Erstellen Sie dann ein Automator-Skript, das eine einzelne Aktion "Ausführen eines Shell-Skripts" enthält. Fügen Sie das folgende (bash) Skript ein:

for f in "[email protected]"
do
    open /Applications/spyder.app --args $f
done
if [ -z "$f" ]; then
    open /Applications/spyder.app --args ~
fi

Wählen Sie "As argument" für die Eingabedaten, wie im folgenden Screenshot gezeigt ("--args ~" fehlt im Screenshot, wird jedoch benötigt, um einen Fehler beim Starten des Spyder ohne Datei zu vermeiden) . automator script
Speichern Sie dieses Skript beispielsweise als Anwendung mit dem Namen "SpyderOpener".

Machen Sie SpyderOpener zur Standardanwendung für das Öffnen von PY-Dateien (mithilfe des Finder-Dialogfelds "Informationen abrufen" für eine PY-Datei).

22
topoman

Navigieren Sie zu Anaconda/bin, suchen Sie nach Spyder (oder IPython usw.), und ziehen Sie es in das Dock - legen Sie es jedoch am Ende in den Dokumentenbereich. Dann haben Sie einfachen Zugriff darauf und wenn Sie darauf klicken, startet Mac OS X eine Shell, die es ausführt, und sie wird im Abschnitt "Anwendungen" angezeigt, sodass Sie die laufende Anwendung durch Anklicken vorrücken können.

4
user3689227

Sie können Automator verwenden, um eine Anwendung zu erstellen, die Unix-Skript ausführt. Öffnen Sie Automator, wenn Sie nach dem Dokumenttyp "Anwendung" fragen.

Suchen Sie und klicken Sie auf "Run Shell Script". Sie können/bin/bash unverändert lassen und in das Kästchen die Position des Spyder eingeben (wie angegeben, wenn Sie den Spyder im Terminal eingeben). Dann speichern Sie die Datei und sind fertig. Dadurch wird auch das Problem, das ich hatte, wenn das Terminal im Hintergrund ausgeführt wurde, beseitigt, und Sie erhalten eine Anwendung, die Sie zum Dock ziehen können. Sie können das Logo auch wie oben vorgeschlagen ändern.

(Ich habe dies mit Mac OS 10.10 und einer Anaconda 2.3.0 gemacht)

3
jncweb

Sie können den Spyder öffnen, indem Sie Quicksilver auf ~/anaconda/bin/spyder setzen (Sie können es Ihrem Katalog hinzufügen, sodass er es immer findet). 

2
asmeurer

Ein superschneller Weg ohne jegliche Fertigkeit ist es, die exe zu finden (which sypder wird dies erreichen) in etwas wie //anaconda3/bin/spyder. Duplizieren Sie diese Datei und legen Sie sie auf Ihrem Desktop ab. Wann immer Sie es brauchen, doppelklicken Sie einfach.

Beachten Sie den Grund, warum ich dies als Alternative vorschlage, weil ich auf meinem Arbeitscomputer keinen Zugriff habe, um das Anwendungsverzeichnis zu ändern.

Edit: Eine noch schnellere Möglichkeit wäre: command + spacebar und dann Spyder eingeben.

1
A Bear

Ich glaube, dass der einfachste Weg für den Zugriff auf Spyder in macOS über das Terminal ist! Sie behalten das Terminal im Dock und wenn Sie Spyder öffnen möchten, öffnen Sie das Terminal und geben Spyder in ein Terminal ein und drücken dann die Eingabetaste! Ich mag diese Methode, weil ich, wenn ich ein Terminal öffne und ein oder mehrere Male den Pfeil nach oben drücke, auf spyder zugreifen und es mit der Eingabetaste ausführen werde! Ich weiß, dass es eine sehr offensichtliche und einfache Methode ist, aber ich wollte es daran erinnern!

1
ali HASHEMI

Eine sehr einfache Methode, die keine Verwendung von Terminal erfordert, besteht im Wesentlichen darin, ein spyder.app-Paket in Applications zu erstellen und die spyder-exec-Datei aus Anaconda in diesen Ordner zu kopieren. Wenn Sie auf das Paket klicken, wird spyder als App ausgeführt, und Sie können mit der rechten Maustaste auf das Dock-Symbol klicken, um es im Dock zu behalten.

Nachfolgend finden Sie die Schritt-für-Schritt-Anweisungen.

Wir erstellen zuerst den Ordner spyder.app in Applications: 

  1. Öffnen Sie den Ordner "Programme" im Finder.

  2. Klicken Sie mit der rechten Maustaste und erstellen Sie "Neuer Ordner".

  3. Benennen Sie den Ordner "spyder.app" und erlauben Sie die Erweiterung .app.

Wir kopieren dann die Exec Spyder-Datei:

  1. Öffnen Sie in einem neuen Finder-Fenster Ihren Heimatordner (er sollte ein einfaches Bild eines Hauses als Symbol haben). Eine Tastenkombination besteht darin, Shift + Befehl + H zu drücken, während der Finder geöffnet ist.

  2. Öffnen Sie den Ordner Anaconda3 und öffnen Sie den Ordner "Bin".

  3. Suchen Sie die Exec-Datei mit dem Namen 'Spyder' und klicken Sie mit der rechten Maustaste, um die Datei zu kopieren.

Hinweis: Wenn anaconda3 nicht in Ihrem Home-Verzeichnis installiert ist, suchen Sie einfach nach 'anaconda3' mit genauen Dateinamenübereinstimmungen im Finder und öffnen Sie die Datei.

Fügen Sie die kopierte exec-Datei in das Paket spyder.app ein:

  1. Klicken Sie im Finder-Fenster für Anwendungen mit der rechten Maustaste auf die oben erstellte Datei spyder.app, und wählen Sie "Paketinhalt anzeigen" aus.

  2. Klicken Sie mit der rechten Maustaste in das Fenster und fügen Sie die Exec-Datei ein.

Wenn Sie jetzt zum Anwendungsordner zurückkehren, doppelklicken Sie auf das Paket spyder.app, und der Spyder sollte ausgeführt werden. Klicken Sie mit der rechten Maustaste auf das Symbol im Dock und wählen Sie "Keep in Dock", um die App im Dock zu halten, wenn sie nicht ausgeführt wird. Sie können auch das Symbol für die App erstellen, wie in 4 und 5 der ursprünglichen Antwort angegeben.

0
cookiecook