Ubuntu在〜/ .local / bin中找不到可执行文件


12
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吗?

Answers:


11

~/是主文件夹的外壳程序缩写,通常是/home/USERNAME/,其中USERNAME用户名。一样$HOME

~/.local/bin是在主文件夹中命名bin的子文件夹中命名的子.local文件夹。

您可以使用

~/.local/bin/pip3

调用新的pip3可执行文件。添加~/.local/bin$PATH环境变量可能更容易,请参阅如何将目录添加到我的路径?因此您不需要一直输入~/.local/bin/

确保的旧值之前添加它$PATH,例如

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

谢谢你的文章。不幸的是,我在主文件夹中看不到该子文件夹(它是隐藏文件吗?)。当我在终端中键入该命令时,我得到:bash:/home/myname/.local/bin/pip3:没有这样的文件或目录
TabulaSmaragdina

是的,如果文件或文件夹的名称以点开头,则默认情况下是隐藏的。您也可以ls -a用来ls显示隐藏的文件和文件夹。
Florian Diesch '16

@TabulaSmaragdina奇怪的是找不到该文件。尝试跑步ls -a ~/.local/bin。如果输出很长,请将其编辑为您的问题。
wjandrea

1
不是~/.local/bin/piston
terdon

注意:~/.local/bin/现代Ubuntu上已经在$ PATH中。
亚伦·弗兰克

7

~/.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


0

我今天只是在做这件事,似乎对于想要对安装的内容以及安装位置有一定控制权的人来说,缺乏清晰的文档。

假设您已经运行过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”。有时您不需要在路径中的工作目录中启动程序时就不需要看到“ ./”。

如果以后决定要使其永久保存,以使〜/ .local / bin始终位于PATH中,则可以通过编辑一些环境配置文件来实现。例如,取决于您的设置,在我的主文件夹“ .bashrc”文件中,最后一行是“ export PATH = $ PATH:$ HOME / bin”。所以我可以将$ HOME / local / bin放在前面。注意我写了$ HOME,而不是那里的“〜”。然后,每次我使用BASH shell时,PATH都会被修复。如果您可能使用其他外壳,我认为正确的做法是编辑〜/ .profile。我认为Ubuntu中的所有shell都将源该文件。

就我而言,我使用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运行root用户安装。如果在没有sudo的情况下运行,则意味着危险仅限于用户帐户。如果您以root用户身份运行脚本时遇到麻烦,则可能会将文件分散到整个硬盘上并后悔。特别是如果其他人登录并使用该计算机,除非有信心,否则请避免以root用户身份执行任何操作。

同样值得注意的是,pip3默认安装到〜/ .local,但这不是必需的。阅读“ man pip3”,查找“ -t”(-target)。您可以指定安装目录。我认为这很好,因为您可以将任何损害限制在另一个目录中,并在需要时将其删除。〜/ .local可能在其他程序中安装了其他有价值的东西,您宁愿不要抹去它们。我认为〜/ .local仍然是设置的地方,而不是程序。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.