在 VSCode 中直接使用系统编译器很方便,但是使用虚拟环境,尤其是 Pypy 的时候,就需要一些配置才能工作。一共有两种方法,全局配置和解释器配置,两种方法各自有缺点,暂时无法达到在 pycharm 中的体验。

Pypy 直接在官网下载二进制包,解压后随便放在哪里。不过为了方便使用,我使用 virtualenv 创建Pypy的虚拟包环境。如果要让 VSCode 识别到 env,就必须把文件夹的名字改为 envs.pyenv.direnv 这三个之一,否则就需要在 VSCode 中修改 venvFolders 配置。

项目全局 Pypy

第一种方法是最简单的,直接左下角选择环境即可。如果你没有将虚拟环境文件夹名改为前面三个,就需要打开首选项->设置->工作区设置中添加一行 pythonPath 设置,如下:

{
    "python.linting.pylintEnabled": true,
    "python.linting.enabled": true,
    "python.pythonPath": "${workspaceFolder}/venv/bin/pypy3"
}

这手动指定了解释器路径,只要你在工作区文件夹就自动使用pypy3,但有个问题是要使用 autopep8 和 pylint 还要再装一遍,而且之后导出依赖也会因此多一些东西,如果要切换解释器就要重新改一遍。

解释器配置Pypy

第二种方法需要修改 launch.json,这通常在 .vscode 文件夹下面,且已经生成好了一般配置,我们只需添加一块即可:

{
    "name": "Pypy3: Current File ",
    "type": "python",
    "request": "launch",
    "program": "${file}",
    "pythonPath": "${workspaceFolder}/.pyenv/bin/pypy3"
},

这样在 debug 配置中就会多出一个 Pypy3:Current File 选项,选择后再调试就是 pypy3 解释器了。完整的 launch.json 如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Pypy3: Current File ",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "pythonPath": "${workspaceFolder}/venv/bin/pypy3"
        },
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}"
        },
    ]
}

使用这个方法,我们在开发的时候随便什么环境,但运行的时候就可以选择另外的解释器,保证最后依赖干净。

测试当前 Python 解释器

配置好 Pypy 后如何确定已经正常使用了呢?最简单的是直接看 VSCode 左下角显示的当前解释器,或者还可以编写一个 test.py 写入以下代码运行:

import sys

print(sys.version)

直接显示解释器版本,至此 VSCode 配置完毕,可以正常使用 Pypy 运行。