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

~/是您的主文件夹的shell缩写,通常是/home/USERNAME/ ,其中USERNAME是您的用户名。 它和$HOME

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

您可以使用

 ~/.local/bin/pip3 

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

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

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

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

如果您希望任何新创建的用户拥有此function,您可以在/etc/skel/.profile末尾添加相同的行

我今天刚刚这样做,对于想要对所安装的内容及其位置保持一定控制权的人来说,似乎缺乏明确的文档。

假设您运行了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。 如果您可能使用其他shell,我认为正确的是编辑〜/ .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软件包运行root安装,而不是使用pip3。 如果您在没有sudo的情况下运行,则会将危险限制在用户帐户中。 如果您在以root身份运行脚本时出现问题,则可能会分散硬盘周围的文件并对其后悔。 特别是如果其他人登录并使用该计算机,除非您有信心,否则请避免以root身份执行任何操作。

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