安装 Beautiful Soup 以用于更高版本的 Python(高于默认的 Mac OS)

安装 Beautiful Soup 以用于更高版本的 Python(高于默认的 Mac OS)

我刚刚将 Python 2.7 重新安装到我的 MacBook Pro(运行 OS 10.13.6 High Sierra)上,因为我无意中删除了它,没有意识到它是必需的。我还在同一台计算机上安装了 Python 3.6.8,正在通过“Automate the Boring Stuff”进行工作,这需要 Beautiful Soup 进行网页抓取。问题是我的终端指示 Python v2.7.15 并正在该库的某个地方安装 BS4,但我需要它用于 Python v3.6.8。我已使用以下方法将 Setuptools 更新为最新规范:

python -m pip install --upgrade pip setuptools wheel

如果我python3在命令行中输入“ ”以尝试进入 v3.6.8,我会得到:

Python 3.6.8 (v3.6.8:3c6b436a57, Dec 24 2018, 02:04:31) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

此后我输入的所有内容都会出现语法错误,或者如果我输入:

python --version

它返回:

 Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'python' is not defined

当我尝试将目录更改为下载文件夹时,出现以下信息:

>>> cd /Users/User/Downloads
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'cd' is not defined

有人能告诉我命令行出了什么问题吗?此外,我现在如何从命令行运行 pip 安装程序来将 BS4 包安装/定向到 python3.6.8 库中?

这可能真的很简单,但是,我在这里有点新手......

感谢您的帮助。

答案1

如果我在命令行中输入“python3”以尝试进入 v3.6.8,我会得到:

Python 3.6.8 (v3.6.8:3c6b436a57, Dec 24 2018, 02:04:31) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

此后我输入的所有内容都会出现语法错误

这是因为你输入的命令正在被解释为Python,而不是您的终端。要返回正常终端,请输入quit()

我现在如何从命令行运行 pip 安装程序来安装 / 将 BS4 包引导到 python3.6.8 库中

似乎当你重新安装 Python 2.7 时,它的目录被添加到你的小路 环境变量在 Python 3 目录之前。当你进入python终端时,它会python当前工作目录,然后遍历你的小路。它执行第一个匹配并停止查找。

我建议编辑你的小路因此 Python 3 目录位于 Python 2 目录之前。请参阅在 Mac 上编辑 PATH 变量

我正在运行 Windows,并且我的 Python 3 的 PATH 中有这两个目录:

C:\Users\Admin\AppData\Local\Programs\Python\Python37\
C:\Users\Admin\AppData\Local\Programs\Python\Python37\Scripts

我需要两者,因为python可执行文件在第一个目录中,而pip可执行文件在第二个目录中。

或者,将终端中的目录更改为pip可执行文件所在的位置:cd [...]\Python\Python37\Scripts

现在你可以为 Python 3 安装 Beautiful Soup 4:pip install beautifulsoup4

答案2

谢谢戈登。

这是因为您输入的命令是由 Python 而不是您的终端解释的。要返回正常终端,请输入 quit()

是的,这显然是我的错误。谢谢你纠正我。

重置 PATH 以使 Python 3 优先于 2 的问题需要进行一些研究;我发现链接的帖子有点令人困惑,但这只是意味着我必须做一些阅读。

对我来说有用的就是简单地输入pip3 install beautifulsoup4

我在寻找 Python 3.6 的文件路径时发现了这一点,并偶然发现了该版本应用程序文件夹中的 readme.txt。即:

Python 3 与 Python 2 共存:Python.org Python 3.6 和 2.7.x 版本均可安装在您的系统上,不会发生冲突。Python 3 的命令名称中包含 3,如 python3(或 python3.6)、idle3(或 idle3.6)、pip3(或 pip3.6)等。Python 2.7 命令名称包含 2 或不包含数字:python2(或 python2.7 或 python)、idle2(或 idle2.7 或 idle)等。

就是这样。

但还是谢谢你的帮助。你确实给我指明了正确的方向。

相关内容