Ubuntu ne trouve pas de fichier exécutable dans ~ / .local / bin

12
after installation with

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

J'ai installé l'outil à l'aide de l'installation de pip, mais je ne trouve pas le fichier exécutable.

Je ne suis pas sûr de bien comprendre ce qu'est ce répertoire: ~ / .local / bin.

Est-ce juste root / local / bin?

TabulaSmaragdina
la source

Réponses:

11

~/est une abréviation shell pour votre dossier de base, généralement /home/USERNAME/, où USERNAMEest le nom de votre utilisateur. C'est la même chose que$HOME

~/.local/binest un sous-dossier nommé bindans le sous-dossier nommé .localdans votre dossier de départ.

Vous pouvez utiliser

~/.local/bin/pip3

pour appeler votre nouvel pip3exécutable. Il peut être plus facile d'ajouter ~/.local/binà la $PATHvariable d'environnement, voir Comment ajouter un répertoire à mon chemin? vous n'avez donc pas besoin de taper ~/.local/bin/tout le temps.

Assurez-vous de l'ajouter avant l'ancienne valeur de $PATH, comme

PATH="$HOME/.local/bin/:$PATH"
Florian Diesch
la source
Merci pour votre commentaire. Malheureusement, je ne vois pas le sous-dossier dans le dossier d'accueil (est-ce un fichier caché?). Et quand je tape cette commande dans le terminal, j'obtiens: bash: /home/myname/.local/bin/pip3: Aucun fichier ou répertoire de ce type
TabulaSmaragdina
Oui, si le nom d'un fichier ou d'un dossier commence par un point, il est masqué par défaut. Vous pouvez également utiliser ls -apour lsafficher les fichiers et dossiers cachés.
Florian Diesch
@TabulaSmaragdina Il est étrange que le fichier ne soit pas trouvé. Essayez de courir ls -a ~/.local/bin. Si la sortie est longue, veuillez la modifier dans votre question.
wjandrea
1
Tu ne veux pas dire ~/.local/bin/piston?
terdon
Remarque: ~/.local/bin/est déjà dans $ PATH sur Ubuntu moderne.
Aaron Franke
7

~/.local/bina été ajouté au PATH dans Ubuntu 16.10 et rétroporté vers 16.04. Voir https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562

Si vous exécutez Ubuntu> = 16.04 avec toutes les mises à jour, cela devrait déjà convenir. Sinon, vous pouvez l'ajouter manuellement:

Pour un seul utilisateur, modifiez le fichier ~/.profileet ajoutez à sa fin:

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

Si vous souhaitez que tout utilisateur nouvellement créé en dispose, vous pouvez ajouter cette même ligne à la fin de /etc/skel/.profile

Mossroy
la source
0

Je faisais juste cela aujourd'hui, il semble que la documentation claire soit rare pour les gens qui veulent garder un certain contrôle sur ce qui est installé et où.

En supposant que vous ayez exécuté pip3 install quoi que ce soit, il place par défaut les choses sous ~ / .local, comme vous le savez. Il est habituel sous Unix de diviser les types de fichiers, placez ceux "exécutables" sous ~ / .local / bin.

Dans un terminal, tapez ceci pour voir votre chemin maintenant:

$ echo $PATH

Vérifiez que vous disposez des éléments python installés dans ~ / .local

$ ls -la ~/.local/bin

Cela confirme que les fichiers exécutables sont là, ou le fait pour moi. Si ces autorisations de fichier affichent "x", elles sont exécutables.

Maintenant, ajoutez ce répertoire au chemin dans le terminal

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

Vérifiez à nouveau votre chemin pour voir le changement. N'oubliez pas qu'il s'agit d'un paramètre temporaire uniquement pour cette session de terminal. Il ne s'applique pas aux autres terminaux en même temps ou à l'avenir. C'est un bon endroit pour tester des choses.

Après cela, chaque exécutable de programme dans ~ / .local / bin devrait s'exécuter si vous tapez son nom dans la ligne de commande. Il n'est pas nécessaire d'exécuter "~ / .local / bin / jupyter", par exemple. Tapez simplement "jupyter". Pas besoin du "./" que vous voyez parfois, c'est quand vous lancez un programme à partir du répertoire de travail qui n'est pas dans le chemin.

Si vous décidez par la suite de vouloir rendre cela permanent, afin que ~ / .local / bin soit toujours dans votre CHEMIN, vous pouvez le faire en modifiant certains fichiers de configuration d'environnement. Selon votre configuration, par exemple, dans mon fichier de dossier personnel ".bashrc", la dernière ligne est "export PATH = $ PATH: $ HOME / bin". Je pourrais donc mettre $ HOME / local / bin à l'avant de cela. Notez que j'ai écrit $ HOME, pas "~" là-dedans. Ensuite, chaque fois que j'utilise un shell BASH, PATH est corrigé. Si vous pourriez utiliser d'autres shells, je pense que la bonne chose est d'éditer le ~ / .profile à la place. Je pense que tous les shells d'Ubuntu se procureront ce fichier.

Dans mon cas, j'ai installé plusieurs programmes avec pip3, comme jupyter. Une façon de vous assurer que l'emplacement d'installation a été d'exécuter

$ pip3 list

affiche tous les packages disponibles, pas seulement ceux installés par pip3.

$ pip3 show jupyter

Dans mon cas, par exemple:

---
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

Je ne veux pas que cela sonne comme une flamme, mais cela peut sembler être une attaque. Je vous préviens de ne pas suivre avec empressement les conseils que certaines personnes ici vous proposent de lancer "sudo pip3 xxx". En général, vous préférez exécuter les installations root uniquement avec les paquets Debian, pas avec pip3. Si vous exécutez sans le sudo, vous limitez le danger au compte utilisateur. Si vous vous trompez en exécutant un script en tant que root, vous pourriez disperser des fichiers tout autour de votre disque dur et le regretter. Surtout si d'autres personnes se connectent et utilisent cet ordinateur, évitez de faire quoi que ce soit en tant que root, sauf si vous êtes confiant.

Il convient également de noter que pip3 est installé par défaut dans ~ / .local, mais ce n'est pas nécessaire. Lisez "man pip3", recherchez "-t" (--target). Vous pouvez spécifier le répertoire d'installation. Je pense que c'est bien parce que vous pouvez limiter tout dommage à un autre répertoire et le supprimer quand vous le souhaitez. ~ / .local pourrait avoir d'autres choses précieuses installées par d'autres programmes et vous préférez ne pas les effacer. Je pense à ~ / .local comme un endroit plus pour les paramètres que pour les programmes de toute façon.

pauljohn32
la source