pip 成功安装包,但未从命令行找到可执行文件

新手上路,请多包涵

我正在使用 mac OS X Yosemite,版本 10.10.3。

我按照 http://johnlaudun.org/20150512-installing-and-setting-pip-with-macports/ 中的操作使用 macport 安装了 python2.7 和 pip

我可以成功安装包并将它们导入到我的 python 环境和 python 脚本中。但是,找不到任何与可以从终端命令行调用的包关联的可执行文件。

有谁知道可能出了什么问题? (下面有更多详细信息)

例如,按照 http://wiki.ros.org/jade/Installation/Source 中的说明安装名为“rosdep”的包时

我可以运行: sudo pip install -U rosdep 安装没有错误,相应的文件位于 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

但是,如果我尝试运行: sudo rosdep init ,它会给出一个错误: "sudo: rosdep: command not found"

这不是包特定的错误。对于在我的计算机上使用 pip 安装的任何软件包,我都会得到这个。我什至尝试添加

/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

到我的 $PATH 。但是在命令行上找不到可执行文件,即使这些包在 python 中运行得很好。

原文由 Sanket_Diwale 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 788
2 个回答

检查你的 $PATH

tox 有一个命令行模式:

 audrey:tests jluc$ pip list | grep tox
tox (2.3.1)

它在哪里?

(编辑: 2.7 东西在这里并不重要,在任何 3.x 和 pip 的行为方式几乎相同)

 audrey:tests jluc$ which tox
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/tox

我的 $PATH 里有什么?

 audrey:tests jluc$ echo $PATH
/opt/chefdk/bin:/opt/chefdk/embedded/bin:/opt/local/bin:..../opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin...

注意到 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin 了吗?这就是允许找到我的 pip 安装的东西

现在,要查看来自 Python 的内容,请尝试执行此操作(将 rosdep 替换为 tox )。

 $python
>>> import tox
>>> tox.__file__

打印出来:

 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tox/__init__.pyc'

现在, cd 到上面的目录 lib 上面。你看到一个 bin 目录了吗?你在那个垃圾箱里看到 rosdep 了吗?如果是这样,请尝试将 bin 添加到您的 $PATH。

 audrey:2.7 jluc$ cd /opt/local/Library/Frameworks/Python.framework/Versions/2.7
audrey:2.7 jluc$ ls -1

输出:

 Headers
Python
Resources
bin
include
lib
man
share

原文由 JL Peyret 发布,翻译遵循 CC BY-SA 4.0 许可协议

我知道这个问题是关于 macOS 的,但这里有一个针对通过 Google 到达这里的 Linux 用户的解决方案。

我遇到了这个问题中描述的问题,通过 pip 安装了 pdfx 包。

但是,当我运行它时,什么都没有…

 pip list | grep pdfx
pdfx (1.3.0)

然而:

 which pdfx
pdfx not found

Linux 上的问题是 pip install ... 将脚本放入 ~/.local/bin 而这不是默认的 Debian/Ubuntu $PATH

这是一个更详细的 GitHub 问题: https ://github.com/pypa/pip/issues/3813

要修复,只需将 ~/.local/bin 添加到您的 $PATH ,例如将以下行添加到您的 .bashrc 文件:

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

之后,重新启动您的 shell,事情应该会按预期进行。

原文由 James Hibbard 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题