哪个 Pip 和哪个 Python 应该返回相同的目录? Unix RHEL 上的 Zeppelin 配置

Posted

技术标签:

【中文标题】哪个 Pip 和哪个 Python 应该返回相同的目录? Unix RHEL 上的 Zeppelin 配置【英文标题】:Should Which Pip and Which Python Return the Same Directory? Zeppelin Configuration On Unix RHEL 【发布时间】:2020-01-27 08:04:57 【问题描述】:

这可能是一个非常愚蠢的问题,但我被困在这个问题上并浪费了太多时间,所以我非常感谢任何帮助。

我正在使用 RHEL 7 机器并在其上安装了 Apache Zeppelin。一切正常,除了我的生活我无法导入 Python 包,如 Pandas。

我意识到我没有 PIP,所以我通过以下步骤安装了它:https://pip.pypa.io/en/stable/installing/(请注意,我必须对命令“python get-pip.py”使用“--user”参数)。

最后,我做了“pip install pandas --user”,效果很好。然后我进入我的 Zeppelin 笔记本,即使重新启动 Python 解释器,我也无法导入 pandas。

我做了一些研究,我认为问题在于“which python”和“which pip”安装在不同的目录中,因为前者导致“/usr/bin/python”,而后者在“~/.local /bin/pip”。

所以我怀疑使用 pip 安装的软件包基本上被加载到不同版本的 python 中?如果有帮助,当我执行“whereis python”时,我会得到 5 个不同的结果,例如“/usr/bin/python”和“/usr/bin/python2.7”等。

【问题讨论】:

【参考方案1】:

首先要了解的是:Python 包不是全局安装的,每个安装的 Python 都有自己的包集。顺便说一句,pip 是一个带有脚本的 Python 包也不是全局的。如果你有几条不同的蟒蛇,你需要为它们提供不同的点数。我不知道 Apache Zeppelin,所以我无法猜测它是使用系统 Python (/usr/bin/python) 还是有自己的 Python;在后一种情况下,您需要专门为 Zeppelin 安装 pip,以便它的 pip 安装包可用于 Zeppelin。

要调查 Python pip 安装的软件包,您需要找出它运行在什么 python 下。以shebang开头:

head -1 `which pip`

该命令将打印类似~/.local/bin/python 的内容。如果它不是 Python 版本,您需要安装软件包,因为您需要使用该 Python 安装不同的 pip

最复杂的情​​况是shebang是否依赖于路径,例如#!/usr/bin/env python。在这种情况下,pip 运行 Python,您可以使用 which python 找到它。

附言。 AFAIK 在 RedHat 上安装 pip 的最简单方法是 dnf install python-pip

【讨论】:

【参考方案2】:

phd 的回答很有帮助,但我发现这只是使用 root 帐户安装 python 包的问题。然后我的 Zeppelin 能够看到任何包裹。

【讨论】:

以上是关于哪个 Pip 和哪个 Python 应该返回相同的目录? Unix RHEL 上的 Zeppelin 配置的主要内容,如果未能解决你的问题,请参考以下文章

哪个 pip 与哪个 python 一起使用?

win XP的系统应该装哪个python的安装包?

安装pip的三种方法

我应该使用 Any() 还是 Count() ?哪个更快?如果 IEnumerable 对象中存在任何数据,两者都会返回相同的输出(真或假)吗? [复制]

google.cloud 在哪个 python 库中?

getcwd()和dirname(__ FILE__)之间的区别?我应该使用哪个?