【问题标题】:Python 3.2 Unable to import urllib2 (ImportError: No module named urllib2) [duplicate]Python 3.2无法导入urllib2(ImportError:没有名为urllib2的模块)[重复]
【发布时间】:2011-09-29 11:49:30
【问题描述】:

我使用的是 Windows,但出现错误:

ImportError: No module named urllib2

我认为this 是 Linux 的解决方案。但是如何在 Windows 中设置呢?

我使用的是 Python 3.2,但在 LiB 文件夹中看不到 urllib2

【问题讨论】:

  • urllib2 在 python3 中被合并到 urllib 中。见python.org/dev/peps/pep-3108/#urllib-package
  • @newbie 您可以将此评论放入答案中
  • 新手的回答应该被接受。
  • 我不同意这是重复的,因为它是关于 urllib2 的,而重复是关于 urllib 的。这两个问题的答案都非常有用。

标签: windows python-3.x


【解决方案1】:

Python 3

import urllib.request

wp = urllib.request.urlopen("http://example.com")

pw = wp.read()

print(pw)

Python 2

import urllib

 import sys

 wp = urllib.urlopen("http://example.com")

 for line in wp:

     sys.stdout.write(line)

虽然我已经在各自版本中测试了这两个代码。

【讨论】:

    【解决方案2】:

    在 python 3 中,urllib2 被合并到 urllib 中。 另见another Stack Overflow questionurllib PEP 3108

    让 Python 2 代码在 Python 3 中工作:

    try:
        import urllib.request as urllib2
    except ImportError:
        import urllib2
    

    【讨论】:

    • 你能解释一下如何解决这个问题吗?从链接中我看到包中进行了一些更改,但是我应该在 python 命令中替换 urllib2 以成功安装?用urllib.request 替换urllib2 没有帮助。
    • 请注意,您还需要将 decode() 添加到行阅读器,即从 row = line.strip().split(",") 更改为 row = line.decode().strip ().split(",")
    【解决方案3】:
        import urllib2
    

    Traceback(最近一次调用最后一次):

    文件“”,第 1 行,在

        import urllib2
    

    ImportError: 没有名为“urllib2”的模块 所以 urllib2 已经被包替换了:urllib.request。

    这是 PEP 链接(Python 增强提案)

    http://www.python.org/dev/peps/pep-3108/#urllib-package

    所以你现在可以导入 urllib.request 而不是 urllib2,然后像这样使用它:

        >>>import urllib.request
    
        >>>urllib.request.urlopen('http://www.placementyogi.com')
    

    原文链接:http://placementyogi.com/articles/python/importerror-no-module-named-urllib2-in-python-3-x

    【讨论】:

      猜你喜欢
      • 2016-04-16
      • 1970-01-01
      • 2011-02-17
      • 2023-03-18
      • 1970-01-01
      • 2018-05-22
      • 1970-01-01
      • 2013-01-10
      相关资源
      最近更新 更多