Python2下ImportError: cannot import name 'urlopen'问题解决

来源:互联网 发布:淘宝卖东西侵权怎么办 编辑:程序博客网 时间:2024/06/10 18:50

1.  问题的提出

   在执行python代码的过程中,本来执行正常的代码,在另外一台机器上,却报出了如下错误:

Traceback (most recent call last):  File "<ipython-input-1-d9b40fca9cb0>", line 1, in <module>    from urllib import urlopen;  #载入urllib.request,用于获取页面html源代码
 在Python代码中使用了如下语句了,导入urlopen方法:
from urlib import urlopen
  上述代码在另外一台机器上执行很好的, 为什么在此台机器上却报出错误信息呢?

2.  问题分析与解决

     突然灵光一闪,会不时是由于python的版本不同造成的,经过检查一看,果然如此,两者的python版本不一致。   

     上述代码在Python 2.x下可以正确执行的,在Python 3.x下是会报出上述错误的。

     在了解问题的根源之后,我们就可以知道问题的解决办法了。经过分析发现,在从Python 2向Python 3迁移的过程中, urllib的包重新进行了设计和调整,故两者在不同的Python下是不兼容的。

     在Python 3下正确的用法是:  

from urllib.request import urlopen

3.  Python 2 vs Python 3

    由于Python 2和Python 3版本之间的不兼容性,导致了非常多的类似问题,故在处理Python代码之时,需要注意必须运行在特定的Python版本上。

0 1
原创粉丝点击