我有一个我拼凑在一起的 python 脚本,它通过 rss 提要检查我的 gmail 并将文本输出到屏幕上。它在 python 2.6.6 上工作,但我没有成功让它在 python 3.2.3 下工作。我用 2to3 来转换它。代码在这里:https://www.dropbox.com/s/b1277mi7vc7hv3f/gmailcheckparseconky.py3
问题出现在ObtainEmailFeed 函数中。
使用时出现可怕的“ TypeError("expected bytes, not %s" % s.__class__.__name__)
”错误
b64auth = base64.encodestring("%s:%s" % (user, password))
但是当我使用
string = bytes("%s:%s" % (user,password), 'utf-8')
string2=str(string,'utf-8')
b64auth = base64.encodestring( string)
我明白了
auth = "Basic " + b64auth
TypeError: Can't convert 'bytes' object to str implicitly
这似乎使整个问题又回到了原点。
我已经尝试将密码硬编码为文本,但这不起作用。当我
urllib.error.HTTPError: HTTP Error 401: Unauthorized
设置 `auth = "Basic user:password"
正如我所说,我将代码拼凑在一起。我不完全理解 gmail 需要我授权什么。继续这种思路,我更愿意帮助修复此代码,以便我可以学习并更好地理解 python,而不是指向网络上的另一个脚本,该脚本与我正在做的事情相同/相似.
在此先感谢,尼克