sublime指定python版本

发布时间:2019-08-16 10:28:34编辑:auto阅读(2095)

    这两天闲暇的时候学了下python,遇到一个坑,希望能帮大家解决问题

    背景:我用的是mac,系统中默认安装了python版本是2.7.10;我自己又安装了3.6.3版本

    在我用sublime对着官方文档写爬虫时,发现了一个报错
    代码如下

    import http.client
    conn = http.client.HTTPSConnection("www.baidu.com")
    conn.request("GET", "/")
    r1 = conn.getresponse()
    print(r1.status, r1.reason)
    

    报错如下

    ImportError: No module named http.client

    经分析发现是sublime默认使用系统默认python版本,而系统默认的版本是2.7.10,此版本中没有http.client(老版本中使用httplib)

    也就是说我要在sublime中指定python版本,经过摸索,操作如下:
    Sublime——tools——build system——new build system
    把文件中的内容替换为

    {
        "cmd": ["/usr/local/bin/python3", "-u", "$file"],
        "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
        "selector": "source.python"
    }

    修改完成之后保存。然后在Sublime——tools——build system中选中你刚刚新增的build system即可

    注意:此处/usr/local/bin/python3的地址应为实际地址,可用如下方法查询:在终端中输入:which python3

    localhost:Users daiwenkai$ which python3
    /usr/local/bin/python3





    这样修改之后还发现文件中无法写中文,经测试需在上面文件中添加:
    “env”: {“PYTHONIOENCODING”: “utf8”}
    既新增的build system完整内容应该为:

    {
        "cmd": ["/usr/local/bin/python3", "-u", "$file"],
        "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
        "selector": "source.python",
        "env": {"PYTHONIOENCODING": "utf8"}
    }
    

    如果发现新建的build system有误或者名字不喜欢,可以在sublime——perferfences——browes packages,进入User文件夹删除相应文件

关键字