【问题标题】:installing urllib in Python3.6在 Python3.6 中安装 urllib
【发布时间】:2018-05-23 15:18:49
【问题描述】:

我想导入 urllib 以使用函数“请求”。但是,我在尝试这样做时遇到了错误。我试过 pip install urllib 但仍然有同样的错误。我正在使用 Python 3.6。非常感谢任何帮助。

我确实使用此代码导入 urllib.request:

import urllib.request, urllib.parse, urllib.error 
fhand = urllib.request.urlopen('data.pr4e.org/romeo.txt') 
counts = dict()
for line in fhand: 
    words = line.decode().split() 
for word in words: 
    counts[word] = counts.get(word, 0) + 1 
print(counts) 

但它给了我这个错误:ModuleNotFoundError: No Module named 'urllib.parse'; 'urllib' 不是一个包

here is a screenshot for the error

【问题讨论】:

  • 什么操作系统,有什么错误等?
  • 我正在使用 Windows。我用更多的细节和问题的截图编辑了这个问题。请检查一下。
  • 你试过from urllib import request吗?
  • 你是如何安装 Python3 的?请尽量提供所有信息,以便人们回答您的问题。
  • 总是把完整的错误信息(Traceback)放在有问题的地方(作为文本,而不是屏幕截图)。还有其他有用的信息。

标签: python python-3.x urllib


【解决方案1】:

您必须为您的计算机安装正确的 32 位或 63 位版本

【讨论】:

    【解决方案2】:

    发生这种情况是因为您的本地模块urllib.py 隐藏了您尝试使用的已安装请求模块。当前目录预先附加到 sys.path,因此本地名称优先于安装名称。

    出现此问题时的一个额外调试技巧是仔细查看 Traceback,并意识到您的脚本名称与您尝试导入的模块匹配。

    将您的文件重命名为 url.py 之类的其他名称。 然后它工作正常。 希望对您有所帮助!

    【讨论】:

      【解决方案3】:

      urllib 是一个标准库,您不必安装它。只需import urllib

      【讨论】:

      • 我做了,但还是不行。我用更多的细节和问题的截图编辑了这个问题。请检查一下。
      • 或者从urllib导入请求
      • @mohamed 您没有完全按照回答中的说明导入
      • @ArthurTacca 非常感谢你!它适用于您的编辑。
      【解决方案4】:

      修正后的代码是

      import urllib.request
      fhand = urllib.request.urlopen('http://data.pr4e.org/romeo.txt')
      counts = dict()
      for line in fhand: 
          words = line.decode().split() 
      for word in words: 
          counts[word] = counts.get(word, 0) + 1 
      print(counts) 
      

      运行上面的代码会产生

      {'Who': 1, 'is': 1, 'already': 1, 'sick': 1, 'and': 1, 'pale': 1, 'with': 1, 'grief': 1}
      

      【讨论】:

        【解决方案5】:

        urllib 是一个标准的 Python 库(内置),因此您不必安装它。如果您需要使用request,只需将其导入:

        import urllib.request
        

        如果它不起作用,可能是你以错误的方式编译了 python,所以请善待并提供更多详细信息。

        【讨论】:

        • 我确实使用以下代码导入 urllib.request:import urllib.request, urllib.parse, urllib.error fhand = urllib.request.urlopen('data.pr4e.org/romeo.txt') counts = dict() for line in fhand: words = line.decode().split() for word in words: counts[word] = counts.get(word, 0) + 1 print(counts) 但它给了我这个错误: ModuleNotFoundError: No Module named 'urllib.parse'; 'urllib' 不是一个包
        • @ahmed 我用更多的细节和截图编辑了这个问题,请检查一下。
        • 您上面的代码对我来说可以正常工作(只需将第 2 行替换为 fhand = urllib.request.urlopen('http://data.pr4e.org/romeo.txt') ),没有任何 ModuleNotFoundError 异常,您确定您有 python 3.6 吗?如果是的话,你有 python 3.6.3 还是其他的?
        • 我有 python 3.6.3
        猜你喜欢
        • 2020-11-18
        • 1970-01-01
        • 2018-07-28
        • 2017-05-26
        • 1970-01-01
        • 2017-07-26
        • 2020-12-29
        • 2019-01-14
        • 1970-01-01
        相关资源
        最近更新 更多