Python模块导入错误分析

分享最近有一次使用Python导模块时的错误:

1、问题产生
最近笔者在练习爬虫的过程中,得知有一个模块叫做builtwith,其中有个parse的方法可以用来检查网站构建的技术类型,于是直接用pip安装了此模块: pip install builtwith。
然后在导入此模块的过程中(import builtwith),始终无法成功,提示信息如下:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python35\lib\site-packages\builtwith\__init__.py", line 43
    except Exception, e:
                    ^
SyntaxError: invalid syntax
这时我们可以发现,这个模块是安装成功的,在~\Python35\lib\site-packages\目录下面,并且提示了__init__.py文件的43行有问题。我们可以打开此文件看一看,然而发现这里面用到了urllib2的模块。
    if None in (headers, html):
        try:
            request = urllib2.Request(url, None, {'User-Agent': user_agent})
            if html:
                # already have HTML so just need to make HEAD request for headers
                request.get_method = lambda : 'HEAD'
            response = urllib2.urlopen(request)
            if headers is None:
                headers = response.headers
            if html is None:
                html = response.read()
        except Exception, e:
            print 'Error:', e
            request = None

于是,通过查看文档,可以知道python 3.x中urllib库和urilib2库合并成了urllib库,因此可以基本可以确定此问题就是这样产生的。

2、问题解决

这样的一个问题,最直观的解决方式也许是直接换成Python2.X的版本来运行这个脚本,以达到正确使用builtwith这个我们需要的模块。但是如果我们的项目里面如果又需要使用Python3.X中的模块呢?:)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值