Python 3.7.4-无法使用已安装的软件包(macOS)

Python 3.7.4-无法使用已安装的软件包(macOS)

因此,我使用 brew () 在 macOS High Sierra 10.13.6 下安装了 python 3.7.4,brew install python但遇到了一些问题。

首先,尽管这是小问题,但我想知道这是否会造成影响;当 brew 安装 python 时,它会显示以下内容:

Python has been installed as
  /usr/local/bin/python3

Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
  /usr/local/opt/python/libexec/bin

但是,打字pip没有任何作用。我必须打字pip3才能让它工作。

跑步pip3 --version可得:

pip 19.1.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)

主要问题是我无法使用我安装的任何软件包。例如,我以前youtube-dl安装过,但是一旦我将 python 3.7.3 升级到 3.7.4,就会破坏所有内容。pip3brew upgrade

我可以通过执行以下操作来证明我已经安装了它(为简单起见,其他项目已被删除):

$ ls -l /usr/local/lib/python3.7/site-packages/
drwxr-xr-x  19 root    admin    608 Jun 29 00:07 youtube_dl
drwxr-xr-x  10 root    admin    320 Jun 29 00:07 youtube_dl-2019.6.27.dist-info

然而打字youtube-dl却出现了臭名昭著的-bash: youtube-dl: command not found

我尝试过多次卸载并重新安装 python,但都无济于事。

以下是我的 PATH 在 .bash_profile 中的样子:

PATH="/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/bin:${PATH}:${HOME}/go/bin"
export PATH

任何有助于实现此项工作的帮助都将不胜感激。

答案1

介绍

请阅读Homebrew 和 Python文档:

可执行文件的组织方式如下,以便 Python 2 和 Python 3 都可以无冲突地安装:

  • python3指向 Homebrew 的 Python 3.x(如果已安装)
  • python2指向 Homebrew 的 Python 2.7.x (如果已安装)
  • python指向 Homebrew 的 Python 2.7.x(如果已安装),否则指向 macOS 系统 Python。检查brew info python是否要将 Homebrew 的 3.x 添加python到您的 PATH。
  • pip3指向 Homebrew 的 Python 3.x pip(如果已安装)
  • pippip2指向 Homebrew 的 Python 2.7.x pip(如果已安装)

调用哪些二进制文件?

根据以上信息,如果您想pip从 Homebrew Python 3 安装中使用,请将其调用为pip3– 更具体地说,/usr/local/bin/pip3

如果有/usr/local/bin/pip,则它将来自 Homebrew Python 2 (legacy)。否则它将是系统 Python 的pip

我只能建议从 Homebrew 安装 Python 2 和 3,并使用pythonpython3分别指代 2.7 和 3.x,并且永远不要使用系统 Python。并且永远不要使用sudo

允许

您的 Python 软件包是由root和 而非您的正常用户名安装的。这似乎不对。您是否曾使用sudo来安装某些东西pip?如果是,请在以后避免这种情况并尝试修复权限:

sudo chown -R $(whoami) /usr/local/lib/python3.7/site-packages/

故障排除步骤

运行brew doctor还应该表明您的安装存在问题。

您也可以尝试完全删除 Homebrew Python 安装,然后重新安装它。

小路

不要像问题中所示那样设置你的路径。python3pip3在中/usr/local/bin,所以只要/usr/local/bin在你的路径前面,你就很好了:

export PATH="/usr/local/bin/:$PATH"

应该无论如何都是默认的,所以如果有任何东西覆盖它,请相应地修改你的 shell 初始化脚本。

相关内容