当前位置: 首页 > 面试题库 >

导入httplib ImportError:没有名为httplib的模块

茅炯
2023-03-14
问题内容

运行test.py时出现此错误

C:\Python32>python.exe test.py
Traceback (most recent call last):
  File "test.py", line 5, in <module>
    import httplib
ImportError: No module named httplib

如何纠正?

test.py的 代码块:

#!/usr/local/bin/python

import httplib
import sys
import re
from HTMLParser import HTMLParser


class miniHTMLParser( HTMLParser ):

  viewedQueue = []
  instQueue = []

  def get_next_link( self ):
    if self.instQueue == []:
      return ''
    else:
      return self.instQueue.pop(0)


  def gethtmlfile( self, site, page ):
    try:
      httpconn = httplib.HTTPConnection(site)
      httpconn.request("GET", page)
      resp = httpconn.getresponse()
      resppage = resp.read()
    except:
      resppage = ""

    return resppage


  def handle_starttag( self, tag, attrs ):
    if tag == 'a':
      newstr = str(attrs[0][1])
      if re.search('http', newstr) == None:
        if re.search('mailto', newstr) == None:
          if re.search('htm', newstr) != None:
            if (newstr in self.viewedQueue) == False:
              print ("  adding", newstr)
              self.instQueue.append( newstr )
              self.viewedQueue.append( newstr )
          else:
            print ("  ignoring", newstr)
        else:
          print ("  ignoring", newstr)
      else:
        print ("  ignoring", newstr)


def main():

  if sys.argv[1] == '':
    print ("usage is ./minispider.py site link")
    sys.exit(2)

  mySpider = miniHTMLParser()

  link = sys.argv[2]

  while link != '':

    print ("\nChecking link ", link)

    # Get the file from the site and link
    retfile = mySpider.gethtmlfile( sys.argv[1], link )

    # Feed the file into the HTML parser
    mySpider.feed(retfile)

    # Search the retfile here

    # Get the next link in level traversal order
    link = mySpider.get_next_link()

  mySpider.close()

  print ("\ndone\n")

if __name__ == "__main__":
  main()

问题答案:

您正在Python 3上运行Python 2代码。在Python
3中,该模块已重命名为http.client

您可以尝试在代码上运行该2to3工具,并尝试使其自动翻译。对的引用httplib将自动重写为使用http.client



 类似资料:
  • 导入PyPDF2时出错(没有名为的模块)。我尝试安装Python版本。2、也不工作。我想这个问题可能和安装模块的路径有关,但我无法更改它。。。或者使用Python版本,因为文档中提到了3.2-3.5版 https://pythonhosted.org/PyPDF2/AboutPyPDF2。html 指令 C:\Users\Xiaomi C:\Users\Xiaomi 导入PyPDF2 Module

  • 问题内容: 我有一个与此问题非常相似的问题,但仍落后了一步。我在Windows 7( 对不起 )64位系统上仅安装了一个Python 3版本。 我在此链接后安装了numpy-如问题中所述。安装进行得很好,但是当我执行时 我收到以下错误: 导入错误:没有名为numpy的模块 我知道这可能是一个超级基本的问题,但我仍在学习。 谢谢 问题答案: NumPy版本1.5.0中添加了对Python 3的支持

  • 问题内容: 我正在使用centos linux。 我有Django的python 2.6,现在我升级到了python 2.7。 Python 2.6位于/usr/lib/python2.6中。 Python 2.7位于/usr/local/lib/python2.7中。 它们都具有site-packages目录,并且都包含django 1.2。 如果我运行python,我将获得2.7版本。 我的问

  • 问题内容: 我看到很多这些错误。我已经尝试了所有我想做的事情,但还没有弄清楚。 我正在开发运行python 2.5和Django 1.3的开发服务器。在解压缩tar.gz下载文件后,使用python setup.py install安装了Django 1.3。 一切正常,我很少需要运行,但是尝试使用新的应用程序,并且遇到了问题。 好的,所以我有PATH问题。 从Django安装程序中,我再次检查目

  • 这是我第一次真正坐下来尝试Python3,但似乎失败得很惨。我有以下两个文件: test.py config.py 配置。py中定义了一些函数和一些变量。我将其精简为以下内容: 配置。派克 测验派克 我也有一个 但是,我得到了以下错误: 我知道py3约定是使用绝对导入: 但是,这会导致以下错误: 所以我不知道该在这里做什么...任何帮助都非常感谢。:)

  • 我有一个与这个问题非常相似的问题。我的Windows 7 64位系统上只安装了一个版本的python 3.5。我通过官方网站安装了Anaconda3.4,正如问题中所建议的那样。安装进行得很顺利,但当我想导入时(我只是从命令行键入python) 然后我退出并键入 已满足要求(使用--upgrade to upgrade):d:\program Files\anaconda3\lib\site软件包