我如何获得 Mac 10.13 以将模块安装到 3.x 安装而不是 2.7

How do i get Mac 10.13 to install modules into a 3.x install instead of 2.7

我正在努力学习 python 实用。

我通过 easy_install 安装了 PIP,然后我想播放一些 mp3 文件,所以我在项目目录中通过 pip 安装了 eyed3。问题是它将模块安装到 mac 标准的 python 2.7 中。我发现了这一点,因为它一直告诉我,当脚本由于缺少像 libmagic 这样的库而没有 运行 时,无论我做什么,它都会将我安装的任何库放入 2.7,因此在 [=24] 时找不到=]宁python3。 我的问题是如何让我的系统几乎忽略 2.7 安装并使用我拥有的 3.7 安装。

我一直认为我做错了什么,因为一堆教程轻而易举地解决了它,到目前为止只有一个提到版本之间存在冲突。我真的很想学习 python 并希望得到一些帮助来克服这个障碍。

你试过了吗pip3 install [module-name]

然后您应该可以使用 pip3 freeze.

检查您安装了哪些模块

假设您不使用虚拟环境(并且不愿意更改为这样做):


保证安全的方法是永远不要 运行 pip 作为脚本,只 运行 作为模块。这样,您就可以明确地使用 Python 您尝试为其安装东西的 Python 安装中的可执行文件。

例如,如果您 运行 Apple 预装 Python 2.7 python 并且 Python 3.7 安装 python3,只需执行此操作:

python3 -m pip install eyed3

如果你只有一个 Python 2.x 和一个 Python 3.x,你几乎总是可以使用 23后缀:

pip3 install eyed3

如果您有多个 2.x 或多个 3.x,但每个 .x 只有一个,您通常可以使用 x.y 后缀:

pip3.7 install eyed3

让 macOS 用户更轻松的一件事:

默认情况下,Apple 的预装 Python 需要 sudo 安装包,而 python.org、Homebrew 和许多其他第三方 Python 安装不需要.所以,如果你没有改变默认的任何东西,并且小心不要将 sudopip 一起使用,你永远不会意外安装 Apple 预装的 Python;你只会得到一个 EPERM 错误,而不是误导性的成功。