哪个 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 配置的主要内容,如果未能解决你的问题,请参考以下文章
我应该使用 Any() 还是 Count() ?哪个更快?如果 IEnumerable 对象中存在任何数据,两者都会返回相同的输出(真或假)吗? [复制]