Wie erstelle ich ein Symbol auf dem Ubuntu 16.04-Desktop, mit dem eine Befehlszeilen-App gestartet wird?

7

BEARBEITEN am 27. August 2016: Wird bash -cin der Exec-Zeile verwendet, die Fehlermeldung ist verschwunden, aber der Jupiter startet nicht. Ist das überhaupt unter Ubuntu möglich? Es scheint ein großer Aufwand zu sein, eine einfache Funktionalität zu implementieren.

BEARBEITEN am 16. August 2016: ~ wurde durch $ HOME ersetzt, aber die Fehlermeldung bleibt bestehen.

Ich arbeite unter Ubuntu 16.04 und versuche, ein Skript auf dem Desktop zu erstellen, mit dem jupyter notebook beispielsweise aus einem bestimmten Verzeichnis gestartet wird ~/Notebook.

Ich weiß, wie es im Terminal funktioniert, laufe einfach jupyter notebook --notebook-dir=~/Notebook, dann bin ich auf dem Weg.

Aber wie erstelle ich ein Symbol auf dem Desktop und wenn ich darauf doppelklicke, wird nur dieser Befehl ausgeführt?

Es muss etwas Offensichtliches geben, das mir hier fehlt.

[Desktop Entry]
Version=1.0
Name=Jupyter
Comment=Jupyter Desktop Shortcut
Exec=jupyter notebook --notebook-dir=~/Notebook
Path=~/Notebook
Terminal=true
Type=Application
Icon=~/Downloads/7388996.png

Es wurde nur gemeldet, dass beim Starten der Anwendung ein Fehler aufgetreten ist.

Wohin soll ich von hier aus gehen?

Vielen Dank!

PaulDong
quelle
2
Versuchen Sie zu ersetzen ~durch $HOME: siehe Home-Verzeichnis-Pfade in Unity Launcher
steeldriver
Danke vielmals! Werde es zu Hause ausprobieren und zurückmelden!
PaulDong
Es tut mir leid zu melden, dass ich ~ / durch $ HOME / ersetzt habe, aber die Fehlermeldung hat sich nicht geändert. Aber trotzdem danke für die Hilfe.
PaulDong
In diesem Fall müssen Sie möglicherweise nur den vollständigen absoluten Pfad verwenden
Steeldriver
Absoluter Pfad ist das nächste, was ich versucht habe, und die Symbolzeile hat definitiv funktioniert, aber das Programm selbst weigert sich immer noch zu starten, keine Änderung der Fehlermeldung.
PaulDong

Antworten:

4

Ich würde vorschlagen, dass Sie Bash für den ExecSchlüssel verwenden. Versuchen Sie es bash -c "~/anaconda2/bin/jupyter notebook --notebook-dir=~/Notebook", oder bash -i -c "jupyter notebook --notebook-dir=~/Notebookwenn Sie den vollständigen Pfad zu den Umgebungsvariablen hinzugefügt haben.

Sie sind sich nicht sicher, warum Ihr Eintrag nicht funktionieren würde, aber ich denke, es könnte das vorherige "Notizbuch" sein?

Übrigens würde ich keinen Desktop-Eintrag für Anwendungen wie Jupyter Notebook verwenden, da der Notebook-Prozess meiner Meinung nach noch im Terminal beendet werden muss.

user5206460
quelle
Danke vielmals! Ich lerne Ubuntu und habe den Desktop-Eintrag als Windows-Verknüpfung modelliert, aber es handelt sich eindeutig um unterschiedliche Tiere. Ich habe den bash -cBefehl ausprobiert und es wurde keine Fehlermeldung angezeigt, aber das Jupyter-Notizbuch wurde auch nicht gestartet. Ich sah nur ein Symbol in der Taskleiste, blieb 5-10 Sekunden lang, bevor ich wieder verschwand. Wenn ich nur möchte, dass etwas durch Klicken / Doppelklicken ohne fehleranfällige Terminal-Eingabe beginnt, was ist der beste Weg, dies in Ubuntu 16.04 zu tun?
PaulDong
@ PaulDong Mein schlechtes. Der Befehl wurde automatisch als "Jupiter" korrigiert. Versuchen Sie den neuen Befehl mit "jupyter". Sie können es auch im Terminal versuchen, wo Sie die Debugging-Informationen von bash sehen können. Ich weiß wirklich nicht, was die Lösung für Ihre letzte Frage ist, und ich bin es tatsächlich gewohnt, Terminals zu tippen. Ich würde es
begrüßen,
Danke vielmals! Es tut mir leid, dass ich nicht klargestellt habe, dass ich die automatische Korrektur verstanden habe. Ich werde es am Terminal versuchen und heute Abend die Fehlermeldung sehen.
PaulDong
Versuchte es auf dem Terminal und es funktionierte wie ein Zauber. Wenn ich jedoch auf die überarbeitete Desktop-Datei doppelklicke, wurde einige Sekunden lang ein zusätzliches Symbol in der Startleiste angezeigt, bevor sie nicht mehr angezeigt wurde. Im Browser ist kein Jupyter-Tab geöffnet. Versucht doppelte und einfache Anführungszeichen.
PaulDong
Wenn es nicht möglich ist, ein Symbol zum Starten von Jupyter in Ubuntu zu erstellen, gibt es trotzdem eine Möglichkeit, die Zeile zu verkürzen, die ich in das Terminal eingeben muss? Das Schreiben der Zeile war etwas ablenkend. Kann ich einfach jndas Terminal eingeben und es führt einfach das oben genannte aus jupyter notebook --notebook-dir=~/Notebook? Jede Referenz, die ich lernen kann, wie das geht, wäre hilfreich. Vielen Dank!
PaulDong
1

Ich habe verwendet:

Exec=/home/paul/anaconda3/bin/jupyter notebook --notebook-dir=~/Notebook

Wie in einem Kommentar von PaulDong vorgeschlagen, hatte ich jedoch Probleme, dem PYTHONPATH einen Pfad hinzuzufügen.

Jetzt benutze ich folgendes (unter Ubuntu 16.04):

Ich habe eine jupyter_.sh(In- /home/usr/) Datei mit folgendem erstellt:

#!/bin/bash     

# OPTIONAL - add to PYTHONPATH
export PYTHONPATH="${PYTHONPATH}:/path_to_add/

# start notebook at the desired folder
jupyter notebook --notebook-dir '/path_to_notebooks/'

Und ich habe eine Jupyter.desktop-Datei mit:

[Desktop Entry]
Version=1
Name=Jupyter
Comment=Open jupyter at different dir
Exec=bash -c "~/jupyter_.sh"
Icon=/home/usr/anaconda3/lib/python3.5/site-packages/anaconda_navigator/static/images/jupyter-icon-1024x1024.png
Terminal=true
Type=Application
Raphaelts
quelle
0

Versuchen Sie, ein einfaches Shell-Skript (mit Ihrem Befehl) zu schreiben, und machen Sie es ausführbar (mit 'chmod + x'). Verwenden Sie dieses dann im Feld exec.

Rpal
quelle
Vielen Dank, ein Neuling hier, gibt es eine gute Referenz / Anleitung, die ich lernen kann, um dieses Skript zu schreiben, und nachdem ich das Skript "jupyter.sh" ausführbar gemacht habe, wo soll ich es speichern und was in die Exec-Zeile
einfügen
Versuchen Sie vorher einige Änderungen in Ihrem vorhandenen.desktop-Eintrag. Verwenden Sie zunächst anstelle von true im Feld Terminal false. Der zweite Stamm sollte der Eigentümer dieser Desktop-Datei sein. Erstellen Sie also mit sudo eine über das Terminal (sudo gedit your-file). Verschieben Sie diese Datei dann nach / usr / share / applications (sudo mv your-file / usr / share / applications).
Rpal
Vielen Dank Ritesh! Die Antwort von user5206460 hat es geschafft. Vielleicht ist das ein bisschen umstritten, aber mit terminal=truekönnte ich den laufenden Prozess beenden, nachdem ich fertig bin. Auch wenn ich den Vorteil des Verschiebens in den Anwendungsordner sehe (auf den dann über den Unity Launcher zugegriffen werden kann), war das Symbol auf dem Desktop verschwunden. Also habe ich es nur dort kopiert.
PaulDong
0
sudo apt install xterm
/usr/bin/xterm -geometry 200x20+0+0 -e jupyter notebook

Optionen finden Sie im xterm-Handbuch. Der obige Befehl kann in der Exec-Zeile im Launcher verwendet werden

user2733648
quelle
0

Derzeit arbeitet mit Ubuntu 19.10 und Anaconda 3.

Es öffnet auch kein Terminalfenster, was schön ist.

cd /usr/share/applications
sudo nano Jupyter.desktop

Ersetzen Sie 'jake' und den Pfad nach Bedarf

[Desktop Entry]
Version=1.0
Type=Application
Name=jupyter-notebook
GenericName=Jupyter
Comment=Scientific Python Development Environment - Python3
Exec=bash -c 'export PATH="/home/jake/anaconda3/bin:$PATH" && /home/jake/anaconda3/bin/jupyter-notebook'
Categories=Development;Science;IDE;Qt;Education;
Icon=/home/jake/anaconda3/lib/python3.7/site-packages/anaconda_navigator/static/images/jupyter-icon-1024x1024.png
Terminal=false
StartupNotify=true
MimeType=text/x-python;

Danach sollten Sie es in den Anwendungen finden können.

rot
quelle