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