web-dev-qa-db-ja.com

Ubuntuは〜/ .local / binで実行可能ファイルを見つけることができません

after installation with

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

Pip installを使用してツールをインストールしましたが、実行可能ファイルが見つかりません。

このディレクトリが〜/ .local/binであることを理解できません。

Root/local/binだけですか?

12

~/は、ホームフォルダーのシェルの省略形で、通常は/home/USERNAME/です。ここで、USERNAMEはユーザーの名前です。 $HOMEと同じです

~/.local/binは、ホームフォルダーの.localという名前のサブフォルダーにあるbinという名前のサブフォルダーです。

使用できます

~/.local/bin/pip3

新しいpip3実行可能ファイルを呼び出す。 ~/.local/bin$PATH環境変数に追加する方が簡単な場合があります。 ディレクトリを自分のパスに追加する方法? を参照してください。したがって、常に~/.local/bin/と入力する必要はありません。

必ず追加してくださいbefore古い値の$PATH、たとえば

PATH="$HOME/.local/bin/:$PATH"
11
Florian Diesch

~/.local/binはUbuntu 16.10のPATHに追加され、16.04にバックポートされました。 https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562 を参照してください

すべての更新でUbuntu> = 16.04を実行している場合は、すでに問題ないはずです。そうでない場合は、手動で追加できます。

単一ユーザーの場合、ファイル~/.profileを編集し、最後に追加します:

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

新しく作成したユーザーにこれを持たせたい場合は、/etc/skel/.profileの最後にこの同じ行を追加できます

6
Mossroy

私は今日これをやっていましたが、何がどこにインストールされているかをある程度管理したい人にとっては、明確なドキュメントが不足しているようです。

Pip3 installを実行したと仮定すると、ご存じのようにデフォルトで〜/ .localの下に物を置きます。 Unixでの慣例により、ファイルタイプを分割し、「実行可能な」ものを〜/ .local/binに置きます。

ターミナルで、これを入力して今すぐパスを確認します。

$ echo $PATH

〜/ .localにpythonがインストールされていることを確認してください

$ ls -la ~/.local/bin

これにより、実行可能ファイルが存在することを確認できます。これらのファイルのアクセス許可に「x」と表示されている場合、それらは実行可能です。

次に、そのディレクトリをターミナル内のパスに追加します

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

パスをもう一度確認して、変更を確認します。これは、そのターミナルセッション専用の一時的な設定であることに注意してください。同時にまたは将来、他の端末には適用されません。物事をテストするのに適した場所です。

その後、コマンドラインに名前を入力すると、〜/ .local/bin内のすべてのプログラム実行可能ファイルが実行されます。たとえば、「〜/ .local/bin/jupyter」を実行する必要はありません。 「jupyter」と入力するだけです。時々表示される「./」は必要ありません。これは、パスにない作業ディレクトリからプログラムを起動する場合です。

後でPATHに〜/ .local/binが常に含まれるように永続化することを決定した場合、いくつかの環境設定ファイルを編集することでそれを行うことができます。たとえば、ホームフォルダー「.bashrc」ファイルの設定に応じて、最後の行は「export PATH = $ PATH:$ HOME/bin」です。そのため、その前に$ HOME/local/binを置くことができます。注:「〜」ではなく、$ HOMEを書きました。その後、BASHシェルを使用するたびに、PATHが修正されます。他のシェルを使用する場合は、代わりに〜/ .profileを編集するのが正しいと思います。 Ubuntuのすべてのシェルがそのファイルのソースになると思います。

私の場合、jupyterなど、pip3でいくつかのプログラムをインストールしました。インストール先を確認する1つの方法は、実行することです

$ 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: [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

これを炎のように聞こえさせたくありませんが、攻撃のように思えるかもしれません。 「Sudo pip3 xxx」を実行するために、ここの一部の人々が提供するアドバイスに熱心に従わないように警告します。通常、ルートインストールはDebianパッケージでのみ実行し、pip3では実行しません。 Sudoを使用せずに実行すると、ユーザーアカウントに危険が限定されます。 rootとしてスクリプトを実行しているときに間違えた場合、ハードディスク全体にファイルを分散させて後悔する可能性があります。特に他の人がそのコンピューターにログインして使用する場合は、自信がない限りrootとして何もしないでください。

また、注目に値するのは、pip3がデフォルトで〜/ .localにインストールされることですが、これは必須ではありません。 「man pip3」を読み、「-t」(-target)を探します。インストールディレクトリを指定できます。他のディレクトリへの損傷を制限し、必要なときにいつでも削除できるため、これは素晴らしいと思います。 〜/ .localには、他のプログラムによってインストールされた他の貴重なものが含まれている可能性があり、それらを消去することは避けます。とにかく〜/ .localはプログラムよりも設定のための場所だと思います。

0
pauljohn32