使用spynner时出现Python six库错误
我在电脑上安装了python、pip和easy_install。然后我用pip命令安装了spynner,但在安装autopy的时候遇到了错误。不过我用easy_install解决了这个问题,安装完成后我尝试使用spynner,但它又出错了,程序崩溃了……
这是我遇到的情况:
import spynner
br = spynner.Browser()
br.load("http://www.google.com")
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\spynner\browser.py", line 1674, in createRequest
url = six.u(toString(request.url()))
File "C:\Python27\lib\site-packages\six.py", line 589, in u
return unicode(s.replace(r'\', r'\\'), "unicode_escape")
TypeError: decoding Unicode is not supported
我在Windows 7 64位专业版上,使用的是Python 2.7.8 64位。
我也试过32位的python,但还是出现了同样的错误。有没有人能帮我解决这个错误?
2 个回答
0
我的同事找到了一个解决办法。
就是换一种安装方法。
- 先安装Python
- 下载setuptools和spynner
- 用ez_setup.py来安装setuptools
- 安装spynner
- 最后安装PyQt4
可能PyQt4应该最后安装。
4
我也遇到过同样的问题。我的直接解决办法是修改六个模块中的u()方法。
原来的代码是:
def u(s):
return unicode(s.replace(r'\\', r'\\\\'), "unicode_escape")
我把它改成了:
def u(s):
try:
return unicode(s.replace(r'\\', r'\\\\'), "unicode_escape")
except TypeError as e:
if "decoding Unicode is not supported" in str(e):
return unicode(s.replace(r'\\', r'\\\\'))
这只是一个临时解决办法。希望对你有帮助。