代码在IDLE中工作但在PyCharm中没有

时间:2017-03-14 04:43:03

标签: python pycharm

代码在IDLE中工作,但在Pycharm中没有,这是完整的代码:

import sys
import urllib
import urllib2
from bs4 import BeautifulSoup
type_keyword = "唯品会与消协共同搭建绿色维权通道"
url = "http://www.baidu.com/s?wd=" +      urllib.quote(type_keyword.decode(sys.stdin.encoding).encode('gbk'))
openpage = urllib2.urlopen(url).read()
soup = BeautifulSoup(openpage)
for child in soup.findAll("h3", {"class": "t"}):
    geturls = child.a.get('href')
    print urllib2.urlopen(geturls).geturl()

点击“运行”后,Pycharm将返回错误,如下所示:

C:\Python27\python.exe C:/Python27/ParseWeb/ParseWeb.py
File "C:/Python27/ParseWeb/ParseWeb.py", line 3
SyntaxError: Non-ASCII character '\xe4' in file     C:/Python27/ParseWeb/ParseWeb.py on line 3, but no encoding declared; see   http://python.org/dev/peps/pep-0263/ for details
Process finished with exit code 1

非常有趣的是,无论我在第3行放置什么,Pycharm都会给出错误结果。

可能是什么原因?谢谢!

2 个答案:

答案 0 :(得分:2)

尝试在文件开头添加以下行。

# -*- coding: utf-8 -*-

您可以阅读更多相关信息,例如here

答案 1 :(得分:1)

您粘贴的代码没有第3行错误所示的任何字符。

如果C:/Python27/ParseWeb/ParseWeb.py不是您要运行的文件的名称,您可以尝试在PyCharm中打开要运行的文件,然后按 Ctrl + Shift + F10 (它运行当前打开的文件。)

您还应该通过在文件的前两行中添加它来定义Python文件的编码:

# -*- coding: utf-8 -*-

这似乎是必要的,并且代码中包含非ASCII字符,但首先要确保的是运行正确的文件。