sublime指定python版本

2023-01-31 02:01:06 版本 指定 sublime

这两天闲暇的时候学了下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文件夹删除相应文件

相关文章