我刚刚将 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)等。
就是这样。
但还是谢谢你的帮助。你确实给我指明了正确的方向。