sublime 和 bs4 错误 (windows 10)

sublime and bs4 error (windows 10)

我创建了一个 virtualenv(我将其命名为 scrape),我激活了它并安装了软件包和 beautifulsoup4。我正在尝试使 sublime text 3 在 vi​​rtualenv 中工作(即显示构建结果)。我像这样创建了一个新的构建系统:

{
    "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 应该是)。当我 运行 在 sublime text 中时,我在构建结果面板中只得到“200”,没有任何 html 数据。我得到“200”的事实意味着我的构建系统工作正常,但为什么不显示 html 结果?请注意,我没有收到任何错误。

现在,如果我将 url 从 https://betfair.com to https://ubet.com.cy/sports 更改为(包含一些希腊字符),如果我在 Powershell 中执行此操作,则一切正常(即我得到“200”加上 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())

如果我在 sublime text 中这样做,我会得到“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 text 像我 运行 python 在 Powershell 中一样工作(因为看起来每次我都会遇到一个新的错误)。有什么可以帮我的吗

非常感谢。

这确实是 Sublime Text 特有的问题。 Sublime Text 有这个 env dictionary 会在执行 Python.

之前更新环境变量

Dictionary of environment variables to be merged with the current process’ before passing them to cmd.

Use this option, for example, to add or modify environment variables without modifying your system’s settings.

转到工具 -> 构建系统 -> 新建构建系统并将 PYTHONIOENCODING 设置为 utf8:

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

查看更多信息:

  • Unicode Encode Error in Sublime Text 3 console