sublime和bs4错误(Windows 10)

时间:2017-12-12 10:11:45

标签: python sublimetext

我创建了一个virtualenv(我把它命名为scrape),我激活了它,我已经安装了包和beautifulsoup4。我想在virtualenv中使sublime text 3工作(即显示构建结果)。我创建了一个像这样的新构建系统:

{
    "cmd": ["C:/Users//User1/Desktop/scrape/Scripts/python.exe", "-u","$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

然后我运行这段代码(我知道Betfair有一个API,但这不是重点):

import requests
from bs4 import BeautifulSoup

url = requests.get("https://www.betfair.com/")

print(url.status_code)

bs_4 = BeautifulSoup(url.text, "html.parser")

print(bs_4.prettify())

当我在Powershell和virualenv激活的情况下运行上述操作时,我得到的是" 200"然后是所有的html数据(即ti应该是)。当我在崇高文本中运行时,我只会得到" 200"在构建结果面板中,没有任何html数据。我得到的事实" 200"意味着我的构建系统工作正常,但为什么没有显示html结果?请注意,我没有收到任何错误。

现在,如果我将网址从https://betfair.com更改为https://ubet.com.cy/sports(包含一些希腊字符),如果我在Powershell中执行此操作,一切正常(即我得到" 200&# 34;加上html数据。

import requests
from bs4 import BeautifulSoup

url = requests.get("https://ubet.com.cy/sports")

print(url.status_code)

bs_4 = BeautifulSoup(url.text, "html.parser")

print(bs_4.prettify())

如果我是用崇高的文字做的话,我会得到" 200"加上以下错误:

File "C:\Users\User1\Desktop\scrape\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\x93' in position 6074: character maps to <undefined>

这是第19行:

17class IncrementalEncoder(codecs.IncrementalEncoder):
18    def encode(self, input, final=False):
19        return codecs.charmap_encode(input,self.errors,encoding_table)[0]

一般来说,我正在寻找的是一个让sublime文本工作的解决方案,就像我在Powershell中运行python一样(因为它看起来每次我都会遇到一个新的错误)。有什么东西可以帮助我。

非常感谢。

1 个答案:

答案 0 :(得分:0)

这确实是一个Sublime Text特定问题。 Sublime Text有这个env dictionary,它将在执行Python之前更新环境变量。

  

在将它们传递给cmd之前,将与当前进程合并的环境变量字典。

     

例如,使用此选项可添加或修改环境变量,而无需修改系统设置。

转到工具 - &gt;构建系统 - &gt;新建系统并将PYTHONIOENCODING设置为utf8

"env": {"PYTHONIOENCODING": "utf8"},

详见: