我在mac OS X Yosemite上工作,版本10.10.3。

我使用macport安装python2.7和pip http://johnlaudun.org/20150512-installing-and-setting-pip-with-macports/

我可以成功地安装包,并在我的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:命令未找到”

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

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

到我的$PATH。 但是在命令行中找不到可执行文件,即使包在python中完美地工作。


当前回答

我解决了问题!

用pip3代替pip。 Pip3安装foobaz vim ~ /。ZSHRC并添加:

export PATH="/Users/your_name/Library/Python/3.8/bin:$PATH"

来源 ~/.zshrc

现在MacOS已经将默认终端从bash转移到zsh。因此,您必须源zshrc,而不是bashrc或bash_profile。

foobaz - v

其他回答

检查你的$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?这样才能找到我安装的东西

现在,要查看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目录了吗?你在箱子里看到罗斯戴普了吗?如果是这样,尝试将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

在默认安装python的macOS上,您需要在$PATH中添加/Users/<you>/Library/ python /2.7/bin/。

把这个添加到你的.bash_profile中:

export PATH="/Users/<you>/Library/Python/2.7/bin:$PATH"

这就是pip安装可执行文件的地方。

提示:对于非默认的python版本,请找到python安装的位置并替换上面路径中的该部分。(谢谢你的提示,Sanket_Diwale)

解决方案

根据其他答案,对于linux和mac,你可以运行以下命令:

echo "export PATH=\"`python3 -m site --user-base`/bin:\$PATH\"" >> ~/.bashrc
source ~/.bashrc

除了python3,你还可以使用任何其他python版本的链接:python、python2.7、python3.6、python3.9等。

不要选择.bashrc,而是从您喜欢的shell中选择rc文件。

解释

为了知道用户包在当前操作系统(win, mac, linux)中的安装位置,我们运行:

python3 -m site --user-base

我们知道脚本会进入安装包的bin/文件夹。

所以我们把路径连接起来:

echo `python3 -m site --user-base`/bin

然后我们将其导出到一个环境变量。

export PATH=\"`python3 -m site --user-base`/bin:\$PATH\"

最后,为了避免重复导出命令,我们将其添加到.bashrc文件中,并运行source来运行新更改,给出开头提到的建议解决方案。

除了将python的bin目录添加到$PATH变量中,我还必须更改该目录的所有者,以使其工作。不知道为什么我还不是老板。

chown -R ~/Library/Python/

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

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

然而,当我运行它时,什么都没有……

pip list | grep pdfx
pdfx (1.3.0)

Yet:

which pdfx
pdfx not found

Linux上的问题是pip install…将脚本放入~/。这不是默认的Debian/Ubuntu $PATH。

这是一个GitHub问题,详细说明:https://github.com/pypa/pip/issues/3813

要修复,只需添加~/。例如,在你的.bashrc文件中添加以下一行:

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

在此之后,重新启动shell,事情应该会像预期的那样工作。