web-dev-qa-db-fra.com

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

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 pip install, mais je ne trouve pas le fichier exécutable.

Je ne suis pas sûr de bien comprendre en quoi consiste ce répertoire: ~/.local/bin.

Est-ce juste root/local/bin?

12
TabulaSmaragdina

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

~/.local/bin est un sous-dossier nommé bin dans le sous-dossier nommé .local dans votre dossier personnel.

Vous pouvez utiliser

~/.local/bin/pip3

pour appeler votre nouvel exécutable pip3. Il peut être plus facile d’ajouter ~/.local/bin à la variable d’environnement $PATH, voir Comment ajouter un répertoire à mon chemin? afin que vous n’ayez 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"
11
Florian Diesch

~/.local/bin a été ajouté à PATH dans Ubuntu 16.10, et rétroporté à 16.04. Voir https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562

Si vous utilisez Ubuntu> = 16.04 avec toutes les mises à jour, tout devrait déjà aller. Sinon, vous pouvez l'ajouter manuellement:

Pour un utilisateur unique, éditez le fichier ~/.profile et ajoutez à la fin:

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

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

6
Mossroy

Je faisais cela aujourd'hui, il me semble qu'une documentation claire est rare pour les personnes qui veulent garder un contrôle sur ce qui est installé et où.

Si vous avez exécuté pip3, installez quoi que ce soit, il utilisera par défaut les éléments sous ~/.local, comme vous le savez. Il est habituel sous Unix de diviser les types de fichiers, mettez ceux "exécutables" sous ~/.local/bin.

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

$ echo $PATH

Vérifiez que vous avez installé python dans ~/.local

$ ls -la ~/.local/bin

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

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

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

Vérifiez votre chemin à nouveau 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 programme exécutable dans ~/.local/bin doit être exécuté si vous tapez son nom dans la ligne de commande. Il n’est pas nécessaire d’exécuter "~/.local/bin/jupyter", par exemple. Il suffit de taper "jupyter". Pas besoin du "./" que vous voyez parfois, c'est quand vous lancez un programme à partir du répertoire de travail qui ne se trouve pas dans le chemin.

Si vous décidez plus tard de rendre cette tâche permanente, de sorte que ~/.local/bin soit toujours dans votre PATH, vous pouvez le faire en modifiant certains fichiers de configuration de l’environnement. En fonction de votre configuration, par exemple, dans le dossier ".bashrc" de mon dossier personnel, la dernière ligne est "chemin d'exportation" = $ CHEMIN: $ HOME/bin ". Je pourrais donc mettre $ HOME/local/bin à l’avant. Notez que j'ai écrit $ HOME, pas "~" à l'intérieur. Ensuite, chaque fois que j'utilise un shell BASH, PATH est corrigé. Si vous pouvez utiliser d'autres shells, je pense que la bonne chose à faire est de modifier le fichier ~/.profile. Je pense que tous les shells d’Ubuntu vont utiliser ce fichier.

Dans mon cas, j'ai installé plusieurs programmes avec pip3, tels que jupyter. Une façon de s’assurer que l’endroit où il a été installé est de lancer

$ pip3 list

affiche tous les paquets 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: [email protected]
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 ressemble à une flamme, mais cela peut sembler être une attaque. Je vous avertirais de ne pas suivre avec empressement les conseils que certaines personnes vont offrir, d’exécuter "Sudo pip3 xxx". En général, vous préféreriez exécuter des installations root uniquement avec les paquets Debian, pas avec pip3. Si vous courez sans Sudo, vous limitez le danger au compte de l'utilisateur. Si vous goof en exécutant un script en tant que root, vous risquez de disperser des fichiers tout autour de votre disque dur et de 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.

À noter également que pip3 s’installe 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 agréable, car vous pouvez limiter les dommages à un autre répertoire et le supprimer à tout moment. ~/.local peut contenir d’autres objets de valeur installés par d’autres programmes et vous préférez ne pas les effacer. Je pense que ~/.local est un lieu plus propice aux réglages qu’aux programmes.

0
pauljohn32