Ubuntu не может найти исполняемый файл в ~/.local/bin

after installation with

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

Я установил инструмент с помощью установки зернышка, но я не могу найти исполняемый файл.

Я не совсем уверен, что понимаю, каков этот каталог: ~/.local/bin.

Это является просто корневым/локальным/мусорным ведром?

14
задан 16 July 2016 в 04:25

3 ответа

~ / .local / bin был добавлен в список PATH в Ubuntu 16.10 и обратно в 16.04. См. https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562

Если вы используете Ubuntu> = 16.04 со всеми обновлениями , все должно быть хорошо. Если нет, вы можете добавить его вручную:

Для одного пользователя отредактируйте файл ~ / .profile и добавьте в его конец:

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

Если вы хотите, чтобы любой вновь созданный пользователь имел для этого вы можете добавить эту же строку в конец /etc/skel/.profile

9
ответ дан 23 November 2019 в 03:36

Я как раз делал это сегодня, похоже, что четкая документация недостаточна для людей, которые хотят сохранить контроль над тем, что и где установлено.

Предположим, вы запустили pip3 install в любом случае, как вы знаете, по умолчанию файлы помещаются в ~ / .local. В Unix принято разделять типы файлов, помещать "исполняемые" в ~ / .local / bin.

В терминале введите это, чтобы увидеть свой путь сейчас:

$ echo $PATH

Убедитесь, что у вас установлен python материал в ~ / .local

$ ls -la ~/.local/bin

Это подтверждает наличие исполняемых файлов, или делает это для меня. Если эти права доступа к файлам показывают «x», они являются исполняемыми.

Теперь добавьте этот каталог к ​​пути в терминале

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

Проверьте свой путь еще раз, чтобы увидеть изменения. Помните, что это временная настройка только для этого терминального сеанса. Это не относится к другим терминалам в то же время или в будущем. Это хорошее место для тестирования.

После этого каждый исполняемый файл программы в ~ / .local / bin должен запуститься, если вы введете его имя в командной строке. Например, нет необходимости запускать "~ / .local / bin / jupyter". Просто введите «jupyter». Нет необходимости в "./", которое вы иногда видите, это когда вы запускаете программу из рабочего каталога, которого нет в пути.

Если вы позже решите, что хотите сделать это постоянным, так что ~ / .local / bin всегда находится в вашем PATH, вы можете сделать это, отредактировав некоторые файлы конфигурации среды. В зависимости от ваших настроек, например, в файле моей домашней папки «.bashrc» последняя строка будет «export PATH = $ PATH: $ HOME / bin». Так что я мог бы поставить перед ним $ HOME / local / bin. Обратите внимание, что я написал здесь $ HOME, а не «~». Тогда каждый раз, когда я использую оболочку BASH, PATH будет исправлен. Если вы можете использовать другие оболочки, я считаю правильным вместо этого отредактировать ~ / .profile. Я думаю, что все оболочки в Ubuntu будут источником этого файла.

В моем случае я установил несколько программ с помощью pip3, например jupyter. Один из способов убедиться, что он был установлен, - запустить

$ pip3 list

, чтобы увидеть все доступные пакеты, а не только те, что установлены pip3.

$ pip3 show jupyter

В моем случае, например:

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

Я не хочу, чтобы это звучит как пламя, но может показаться атакой. Я бы предупредил вас, чтобы вы не следовали совету, который некоторые здесь предложат, запустить "sudo pip3 xxx". Как правило, вы бы предпочли запускать корневую установку только с пакетами Debian, а не с pip3. Если вы работаете без sudo, вы ограничиваете опасность для учетной записи пользователя. Если вы ошибетесь при запуске сценария от имени пользователя root, вы можете разбросать файлы по всему жесткому диску и пожалеть об этом. Особенно, если другие люди входят в систему и используют этот компьютер, избегайте каких-либо действий с правами root, если вы не уверены.

Также стоит отметить, что pip3 по умолчанию устанавливается в ~ / .local, но это не обязательно. Прочтите "man pip3", найдите "-t" (--target). Вы можете указать каталог для установки. Я думаю, что это хорошо, потому что вы можете ограничить любой ущерб одним другим каталогом и удалить его, когда захотите. В ~ / .local могут быть другие ценные вещи, установленные другими программами, и вы не хотели бы уничтожать их. В любом случае, я думаю о ~ / .local скорее как о месте для настроек, чем для программ.

0
ответ дан 23 November 2019 в 03:36

~/ - это аббревиатура оболочки для Вашей домашней папки, обычно /home/USERNAME/, где USERNAME - это имя Вашего пользователя. Это то же самое, что $HOME

~/.local/bin является подпапкой с именем bin в подпапке с именем .local в Вашей домашней папке.

Вы можете использовать

~/.local/bin/pip3

для вызова Вашего нового исполняемого файла pip3. Возможно, будет проще добавить ~/.local/bin в переменную окружения $PATH, смотрите Как добавить каталог в мой путь?, чтобы вам не нужно было постоянно набирать ~/.local/bin/.

Убедитесь, что вы добавили его до старого значения $PATH, как

PATH="$HOME/.local/bin/:$PATH"
15
ответ дан 23 November 2019 в 03:36

Другие вопросы по тегам:

Похожие вопросы: