在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运行。