【问题标题】:pip3 install not working properly and cannot link to python3pip3 安装无法正常工作,无法链接到 python3
【发布时间】:2021-01-23 05:20:03
【问题描述】:

我使用的是 Mac 并安装了 python 2 和 3。但是,当我尝试运行 python 3 脚本并显示找不到模块 pandas 时,我尝试了以下命令:

pip3 install pandas  AND 
python3 -m pip install pandas

但是错误仍然存​​在。我试图查看 pip3 和 python3 的安装位置,但有些不对劲。下面是其中 -a python 和 pip 的图像。我该如何解决?

python和pip安装位置图片

【问题讨论】:

  • 你能提供pip3 list | grep pandas的输出吗?
  • 尝试找到您的.../dist-packages/pandas/ 目录。我怀疑它可能安装在一个版本的 python 中,然后当你运行时,你实际上执行了另一个。确保始终明确使用 pip3 和 python3,包括来自您的 IDE。
  • 确保使用 python3 运行你的 python 脚本。确保这一点的一种方法是确保在脚本开头显式添加 python3 shebang(而不是通用 python)
  • pip3 列表 | grep pandas 只显示“pandas 1.1.3”。即使在使用 python3 xyz.py 打开脚本后,我仍然得到 pandas not found 错误
  • 你找到dist-packages/pandas了吗?这个answer 应该可以帮助你做到这一点。

标签: python python-3.x pip


【解决方案1】:

看来 pip3 安装在 2 个不同的目录中。 /usr/local/bin/pip3/usr/bin/pip3 和 python3 安装在 /usr/bin/

我使用 "rm /usr/locak/bin/pip3" 从默认位置删除 pip3,现在 pip3 和 python3 都在 /usr/bin/ 中,现在我可以使用 " pip3 install --user pandas" for python3 and "pip install pandas" for python 2.

感谢@mapto 提出检查安装目录的想法。

【讨论】:

  • 因此,在您的情况下,pip3 以普通用户和 root 用户身份安装。现在您对情况有了更清楚的了解,如果建议您只保留两个安装中的一个,并在将来始终如一地使用它。如果出于任何原因(通常这是库版本不兼容),您需要安装多个相同的 python 版本,正确的解决方法是 pipenv 或 virtualenv。
【解决方案2】:

如果你有两个python版本,并且希望python3作为默认版本,你应该将默认路径设置为python3和pip3。

# for zsh
$ echo "alias python=/usr/local/bin/python3.7" >> ~/.zshrc
# or for bash
$ echo "alias python=/usr/local/bin/python3.7" >> ~/.bashrc

# for zsh
$ echo "alias pip=/usr/local/bin/pip3" >> ~/.zshrc 
# or for bash
$ echo "alias pip=/usr/local/bin/pip3" >> ~/.bashrc

这将在 python3 上运行您的默认操作,假设安装的版本是 3.7。

其次,在多个python环境的情况下使用virtualenv会更好

【讨论】:

  • 这很危险。不同的 linux 和 bsd 发行版(包括 macosx)仍然带有过时的 python2 的原因是存在尚未解决的系统依赖关系。覆盖 python 命令,即使只在 shell 中,也可能导致意想不到的后果。此外,它可能不会在任何使用的 IDE 中覆盖 python。
  • 是的,它对设置 IDE 运行时环境没有帮助。有OP需要选择python解释器
  • 我同意@mapto 除了我需要 python2 作为我的默认解释器。我只需要 python3 来完成一项小任务。我唯一的问题是,无论安装什么包 pip3,它都会为 python2 安装,并且没有为 3 安装任何包。我希望设置是这样的,pip 将为 python 2 安装,pip 3 为 python 3 安装
  • 我怀疑您的解释(为 python2 安装 pip3)是错误的。我们需要了解实际发生的情况。这就是为什么我想要有确凿的证据证明你的 pandas 安装在哪里。
【解决方案3】:

请查看 virtualenv(以及可选的 virtualenvwrapper)。这些将隔离您的内置 Python 和已安装的 Python 版本和模块。这样您就可以避免重叠/冲突。

【讨论】:

  • 不是问题的真正答案,但可以解决问题。除了 virtualenv,还可以考虑使用 pipenv
  • 是虚拟环境解决了这个问题。但是,如果有永久修复,那将是很好的。暂时这样就可以了。非常感谢
猜你喜欢
  • 2019-08-23
  • 2017-10-13
  • 2012-12-27
  • 1970-01-01
  • 2013-01-02
  • 2014-12-26
  • 1970-01-01
  • 1970-01-01
  • 2019-10-19
相关资源
最近更新 更多