我在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中完美地工作。


当前回答

解决方案

根据其他答案,对于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来运行新更改,给出开头提到的建议解决方案。

其他回答

在Windows上,你需要添加路径%USERPROFILE%\AppData\Roaming\Python\Scripts到你的路径中。

解决方案

根据其他答案,对于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来运行新更改,给出开头提到的建议解决方案。

我偶然发现了这个问题,因为我创建、成功构建并发布了一个PyPI包,但在安装后无法执行它。$ path变量设置正确。

在我的例子中,问题是我没有在setup.py文件中设置entry_point:

entry_points = {'console_scripts':

['YOUR_CONSOLE_COMMAND=MODULE_NAME.FILE_NAME:FUNCTION_NAME'],},

python.org上的安装包教程描述了如何定位二进制目录:

在Windows上

您可以通过运行命令找到用户基础二进制目录 python -m site——user-site并用脚本替换站点包。 例如,这个可以返回 c:\ users \ username \ appdata \ roam \ python36 \site-packages 需要设置你的路径包含 C:\Users\Username\AppData\Roaming\Python36\Scripts.

在Linux和macOS上

在Linux和macOS上,您可以通过 运行python -m site——user-base,最后添加bin。为 例如,这通常会打印~/。Local(用~展开到 到您的主目录的绝对路径),因此您需要添加 ~ /。local/bin到您的PATH。

当你使用MacOS安装程序(从Python网站下载)安装Python或Python3时,它会在你的~/中添加一个导出器。配置脚本。你要做的就是找到它的来源。重新启动所有终端也可以达到目的。

警告——我认为最好在Python3中使用pip3 -为了将来的好处。

如果你已经安装了Python3,以下步骤在macOS Mojave上对我有效:

首先使用sudo - sudo - h pip3 Install ansible安装ansible 创建一个指向Python bin路径的符号链接

sudo ln -s /Library/Frameworks/Python.framework/Versions/Current/bin /Library/Frameworks/Python.framework/current_python_bin . sudo ln -s /Library/Frameworks/Python.framework/current_python_bin . txt

把它钉在。profile上

导出路径= $路径:/图书馆/框架/ Python.framework / current_python_bin

执行source ~/。配置并重新启动所有终端外壳。 键入ansible——version