Ubuntu kann keine ausführbare Datei in ~ / .local / bin finden

12
after installation with

pip3 install --user steem-piston
you will get a new executable piston installed in ~/.local/bin

Ich habe das Tool mit pip install installiert, aber ich kann die ausführbare Datei nicht finden.

Ich bin nicht ganz sicher, ob ich verstehe, was dieses Verzeichnis ist: ~ / .local / bin.

Ist es nur root / local / bin?

TabulaSmaragdina
quelle

Antworten:

11

~/ist eine Shell-Abkürzung für Ihren Home-Ordner, in der Regel /home/USERNAME/mit USERNAMEdem Namen Ihres Benutzers. Es ist das gleiche wie$HOME

~/.local/binist ein Unterordner, der binim Unterordner .localIhres privaten Ordners aufgeführt ist.

Sie können verwenden

~/.local/bin/pip3

um deine neue pip3ausführbare Datei aufzurufen . Das Hinzufügen ~/.local/binzur $PATHUmgebungsvariablen ist möglicherweise einfacher. Weitere Informationen finden Sie unter Hinzufügen eines Verzeichnisses zu meinem Pfad. Sie müssen also nicht die ~/.local/bin/ganze Zeit tippen .

Stellen Sie sicher, dass Sie es vor dem alten Wert von hinzufügen $PATH, wie

PATH="$HOME/.local/bin/:$PATH"
Florian Diesch
quelle
Vielen Dank für Ihren Beitrag. Leider kann ich den Unterordner im Home-Ordner nicht sehen (ist es eine versteckte Datei?). Und wenn ich diesen Befehl im Terminal eingebe, erhalte ich: bash: /home/myname/.local/bin/pip3: Keine solche Datei oder Verzeichnis
TabulaSmaragdina
Ja, wenn der Name einer Datei oder eines Ordners mit einem Punkt beginnt, wird er standardmäßig ausgeblendet. Sie können ls -adamit auch lsversteckte Dateien und Ordner anzeigen lassen.
Florian Diesch
@TabulaSmaragdina Es ist merkwürdig, dass die Datei nicht gefunden wird. Versuche zu rennen ls -a ~/.local/bin. Wenn die Ausgabe lang ist, bearbeiten Sie sie bitte in Ihre Frage.
wjandrea
1
Meinst du nicht ~/.local/bin/piston?
Terdon
Hinweis: ~/.local/bin/Ist bereits in $ PATH auf modernen Ubuntu.
Aaron Franke
7

~/.local/binwurde dem PATH in Ubuntu 16.10 hinzugefügt und auf 16.04 zurückportiert. Siehe https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562

Wenn Sie Ubuntu> = 16.04 mit allen Updates ausführen, sollte dies bereits in Ordnung sein. Wenn nicht, können Sie es manuell hinzufügen:

Bearbeiten Sie für einen einzelnen Benutzer die Datei ~/.profileund fügen Sie am Ende Folgendes hinzu:

PATH="$HOME/.local/bin:$PATH"

Wenn Sie möchten, dass ein neu erstellter Benutzer dies hat, können Sie dieselbe Zeile am Ende von hinzufügen /etc/skel/.profile

Mossroy
quelle
0

Ich habe das heute gerade gemacht, und es scheint, als ob es für Leute, die etwas Kontrolle darüber haben möchten, was und wo installiert ist, kaum eine klare Dokumentation gibt.

Angenommen, Sie haben pip3 install ausgeführt. Wie Sie wissen, werden die Inhalte standardmäßig unter ~ / .local abgelegt. Es ist in Unix üblich, die Dateitypen zu unterteilen und die "ausführbaren" unter ~ / .local / bin zu platzieren.

Geben Sie in einem Terminal Folgendes ein, um Ihren Pfad jetzt anzuzeigen:

$ echo $PATH

Stellen Sie sicher, dass Sie das installierte Python-Zeug in ~ / .local haben

$ ls -la ~/.local/bin

Das bestätigt, dass die ausführbaren Dateien vorhanden sind oder für mich. Wenn diese Dateiberechtigungen "x" anzeigen, sind sie ausführbar.

Fügen Sie dieses Verzeichnis nun dem Pfad im Terminal hinzu

$ export PATH=~/.local/bin:$PATH

Überprüfen Sie Ihren Pfad erneut, um die Änderung zu sehen. Bitte denken Sie daran, dass dies nur eine temporäre Einstellung für diese Terminalsitzung ist. Es gilt nicht für andere Terminals zur gleichen Zeit oder in der Zukunft. Es ist ein guter Ort, um Dinge zu testen.

Danach sollte jedes in ~ / .local / bin ausführbare Programm ausgeführt werden, wenn Sie seinen Namen in die Befehlszeile eingeben. Beispielsweise muss "~ / .local / bin / jupyter" nicht ausgeführt werden. Geben Sie einfach "jupyter" ein. Das "./", das Sie manchmal sehen, ist nicht erforderlich, wenn Sie ein Programm aus dem Arbeitsverzeichnis starten, das sich nicht im Pfad befindet.

Wenn Sie später entscheiden, dass Sie das permanent machen möchten, sodass ~ / .local / bin immer in Ihrem PATH ist, können Sie dies tun, indem Sie einige Umgebungskonfigurationsdateien bearbeiten. Abhängig von Ihrer Konfiguration lautet die letzte Zeile in meinem Basisordner ".bashrc" "export PATH = $ PATH: $ HOME / bin". Also könnte ich $ HOME / local / bin vorne drauf setzen. Beachten Sie, dass ich $ HOME geschrieben habe, nicht "~". Jedes Mal, wenn ich eine BASH-Shell verwende, wird PATH repariert. Wenn Sie andere Shells verwenden, ist es meines Erachtens richtig, stattdessen das ~ / .profile zu bearbeiten. Ich denke, dass alle Shells in Ubuntu diese Datei als Quelle haben.

In meinem Fall habe ich mehrere Programme mit pip3 installiert, wie zum Beispiel jupyter. Eine Möglichkeit, um sicherzustellen, wo das installiert wurde, ist das Ausführen

$ pip3 list

Zeigt alle verfügbaren Pakete an, nicht nur die von pip3 installierten.

$ pip3 show jupyter

In meinem Fall zum Beispiel:

---
Metadata-Version: 2.0
Name: jupyter
Version: 1.0.0
Summary: Jupyter metapackage. Install all the Jupyter components in one go.
Home-page: http://jupyter.org
Author: Jupyter Development Team
Author-email: jupyter@googlegroups.org
Installer: pip
License: BSD
Location: /home/pauljohn/.local/lib/python3.5/site-packages
Requires: nbconvert, ipykernel, ipywidgets, notebook, jupyter-console, qtconsole
Classifiers:
  Intended Audience :: Developers
  Intended Audience :: System Administrators
  Intended Audience :: Science/Research
  License :: OSI Approved :: BSD License
  Programming Language :: Python
  Programming Language :: Python :: 2
  Programming Language :: Python :: 2.7
  Programming Language :: Python :: 3
  Programming Language :: Python :: 3.3
  Programming Language :: Python :: 3.4

Ich möchte nicht, dass das wie eine Flamme klingt, aber es scheint wie ein Angriff. Ich warne Sie davor, dem Rat zu folgen, den einige Leute hier anbieten, um "sudo pip3 xxx" auszuführen. Im Allgemeinen würden Sie Root-Installationen lieber nur mit Debian-Paketen ausführen, nicht mit pip3. Wenn Sie ohne das sudo laufen, beschränken Sie die Gefahr auf das Benutzerkonto. Wenn Sie ein Skript als Root ausführen, können Sie Dateien auf Ihrer Festplatte verteilen und es bereuen. Vor allem, wenn sich andere Benutzer anmelden und diesen Computer verwenden, sollten Sie nichts als Root ausführen, es sei denn, Sie sind sicher.

Erwähnenswert ist auch, dass pip3 standardmäßig in ~ / .local installiert wird, dies ist jedoch nicht erforderlich. Lies "man pip3", suche nach "-t" (--target). Sie können das Installationsverzeichnis angeben. Ich finde das schön, denn Sie können jeden Schaden auf ein anderes Verzeichnis beschränken und es löschen, wann immer Sie wollen. ~ / .local enthält möglicherweise andere nützliche Dinge, die von anderen Programmen installiert wurden, und Sie möchten sie lieber nicht auslöschen. Ich betrachte ~ / .local sowieso eher als Ort für Einstellungen als für Programme.

pauljohn32
quelle