VSCode配置Python版本

刚学习Python没多久,对VSCode也不是很熟悉,在一次解问题的过程中,加深了对这两者的印象,于是记录一下。

环境:Mac OS 10.15,VSCode 1.41.1

问题定位

我在尝试用VSCode写python爬虫,遇到一个问题ImportError: No module named requests

通过问题描述很容易知道问题,这是因为导入了requests库,但是VSCode却没有找到这个库。

问题解决

知道了问题,那就好办,安装requests就行了。requests需要通过pip安装,所以要先安装pip。在安装pip之前还要清楚一件事,就是当前的python版本,因为pip是跟python版本对应的。

升级python

因为python2已经不再维护了,所以要保证当前为python3版本。查看当前python版本在命令行输入python

1
2
3
4
5
6
7
8
WARNING: Python 2.7 is not recommended.
This version is included in macOS for compatibility with legacy software.
Future versions of macOS will not include Python 2.7.
Instead, it is recommended that you transition to using 'python3' from within Terminal.

Python 2.7.16 (default, Aug 24 2019, 18:37:03)
[GCC 4.2.1 Compatible Apple LLVM 11.0.0 (clang-1100.0.32.4) (-macos10.15-objc-s on darwin
Type "help", "copyright", "credits" or "license" for more information.

得知当前python版本为2.7,所以我们要进行升级。

小提示:命令行运行python就是打开了终端python环境,如果我们想退出该环境,运行exit()即可。

下载python安装包

下载地址

当前最新版本为3.8.1,我们下载之后进行安装。

更改默认python版本

虽然我们安装了python3.8,但此时命令行运行python,还是显示为2.7,这是因为我们电脑中运行着两个版本的python,默认版本还是2.7。我们需要更改这项默认配置。
在此之前我们还需要确认终端的shell环境,常见的shell环境是bashzsh。怎么当前是哪一个呢?在终端运行:

1
$ echo $SHELL

1、bash
使用vim打开.bash_profile,当然你也可以使用别的文本编辑器。

1
vi .bash_profile

在最后一行添加:

1
alias python="/Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8"

保存之后,更新配置:

1
source .bash_profile

2、zsh
编辑.zprofile文件

1
vi .zprofile

在最后一行添加:

1
alias python="/Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8"

保存之后,更新配置:

1
source .zprofile

然后再次运行python,会看到:

1
2
3
Python 3.8.1 (v3.8.1:1b293b6006, Dec 18 2019, 14:08:53)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

说明我们已经成功将python默认版本改成了3.8版本。

安装pip

推荐使用pip安装脚本进行安装:

1
2
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py   # 下载安装脚本
$ sudo python get-pip.py # 运行安装脚本

因为我们默认的python版本就是3.x版本,所以安装的pip会自动关联到python3版本上。

查看pip版本和路径

1
$ pip --version

会得到以下信息:

1
pip 20.0.2 from /Library/Python/2.7/site-packages/pip (python 2.7)

为什么关联的是python2.7版本?这是因为我电脑上之前通过python2.7安装过pip。那对应的python3.8版本的pip呢?它是由pip3表示的,可以验证下:

1
$ pip3 --version

会得到:

1
pip 20.0.2 from /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pip (python 3.8)

安装requests

到这一步就很简单了,注意使用pip3执行安装命令。

1
$ pip3 install requests

VSCode的python环境和本机python环境

我们成功安装了requests,但是在vscode中运行脚本依旧报无法找到requests库的错误。这时我开始怀疑vscode和本机的python环境可能是不同的,而且我本机有两个python版本,vscode用的是哪一个呢?不管怎么样,我应该需要让vscode的python环境指向本机的python3.8,因为我的pip3requests都是基于这个版本的python安装的。

vscode的python环境

在vscode的python编辑界面的最下面一行会显示当前的python环境:

点击它可以看到当前支持python版本:

发现并没有我们的python3.8,所以我们需要手动指定python的版本。

指定vscode的python版本

使用快捷键Command + ,可以唤出vscode的设计界面。因为配置项非常多,我们通过搜索命令查询,键入[python path](中括号表示整体搜索),可以找到python路径配置的设置项:

默认值是python,我们将它改为/usr/local/bin/python3,然后重启vscode,我们就可以看到当前的python版本已经改为3.8.1了。

导入requests的代码执行也没有问题了!

疑问?

这里还有几个疑问:
1、python2.7和3.7版本都是vscode在安装python时自己装进去的吗?
2、如果不通过指定为本机python版本,仅使用vscode中的python版本能否安装pip?

有能帮助解答的小伙伴将不胜感激!

Donate comment here