使用spynner时出现Python six库错误

4 投票
2 回答
879 浏览
提问于 2025-04-18 15:21

我在电脑上安装了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

我的同事找到了一个解决办法。

就是换一种安装方法。

  1. 先安装Python
  2. 下载setuptools和spynner
  3. 用ez_setup.py来安装setuptools
  4. 安装spynner
  5. 最后安装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'\\\\'))

这只是一个临时解决办法。希望对你有帮助。

撰写回答