ImportError: cannot import name TCPServer

软件和网站开发以及相关技术探讨
回复
bellszhu
帖子: 108
注册时间: 2010-12-18 19:46

ImportError: cannot import name TCPServer

#1

帖子 bellszhu » 2011-08-08 7:45

这是SocketSerer.py如下:

代码: 全选

'''
Created on Aug 8, 2011

@author: bells
'''
from SocketServer import TCPServer, StreamRequestHandler

class Handler(StreamRequestHandler):
    def handle(self):
        addr = self.request.getpeername()
        print 'Got connection from', addr
        self.wfile.write('Thank you for connecting')
        
server = TCPServer(('', 1234), Handler)
server.serve_forever()
执行的时候抛出 ImportError: cannot import name TCPServer
keep the faith
头像
cuihao
帖子: 4793
注册时间: 2008-07-24 11:33
来自: 郑州
联系:

Re: ImportError: cannot import name TCPServer

#2

帖子 cuihao » 2011-08-08 12:50

import SocketServer 试试。
看看dir(SocketServer)的返回值。
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
bellszhu
帖子: 108
注册时间: 2010-12-18 19:46

Re: ImportError: cannot import name TCPServer

#3

帖子 bellszhu » 2011-08-09 7:18

cuihao 写了:import SocketServer 试试。
看看dir(SocketServer)的返回值。

在终端上
>>> dir(SocketServer)
['BaseRequestHandler', 'BaseServer', 'DatagramRequestHandler', 'ForkingMixIn', 'ForkingTCPServer', 'ForkingUDPServer', 'StreamRequestHandler', 'TCPServer', 'ThreadingMixIn', 'ThreadingTCPServer', 'ThreadingUDPServer', 'ThreadingUnixDatagramServer', 'ThreadingUnixStreamServer', 'UDPServer', 'UnixDatagramServer', 'UnixStreamServer', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__version__', 'os', 'select', 'socket', 'sys', 'threading']

在pydev中

代码: 全选

'''
Created on Aug 8, 2011

@author: bells
'''
import SocketServer

print dir(SocketServer)
输出如下:
['SocketServer', '__builtins__', '__doc__', '__file__', '__name__', '__package__']
['SocketServer', '__builtins__', '__doc__', '__file__', '__name__', '__package__']

为什么结果不一样??
keep the faith
头像
jarlyyn
帖子: 4671
注册时间: 2006-04-12 18:54
联系:

Re: ImportError: cannot import name TCPServer

#4

帖子 jarlyyn » 2011-08-09 9:13

python版本?

google了下,doc.python.org相对条款有个提示:
The SocketServer module has been renamed to socketserver in Python 3.0. The 2to3 tool will automatically adapt imports when converting your sources to 3.0.
头像
cuihao
帖子: 4793
注册时间: 2008-07-24 11:33
来自: 郑州
联系:

Re: ImportError: cannot import name TCPServer

#5

帖子 cuihao » 2011-08-09 12:53

jarlyyn 写了:python版本?

google了下,doc.python.org相对条款有个提示:
The SocketServer module has been renamed to socketserver in Python 3.0. The 2to3 tool will automatically adapt imports when converting your sources to 3.0.
他能用print语句说明肯定是Python2咯
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
头像
cuihao
帖子: 4793
注册时间: 2008-07-24 11:33
来自: 郑州
联系:

Re: ImportError: cannot import name TCPServer

#6

帖子 cuihao » 2011-08-09 12:55

我这里挺正常的,

代码: 全选

cuihao@cuihao-arch /tmp $ python2 -V
Python 2.7.2
cuihao@cuihao-arch /tmp $ python2 aa.py
['BaseRequestHandler', 'BaseServer', 'DatagramRequestHandler', 'ForkingMixIn', 'ForkingTCPServer', 'ForkingUDPServer', 'StreamRequestHandler', 'TCPServer', 'ThreadingMixIn', 'ThreadingTCPServer', 'ThreadingUDPServer', 'ThreadingUnixDatagramServer', 'ThreadingUnixStreamServer', 'UDPServer', 'UnixDatagramServer', 'UnixStreamServer', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__version__', 'os', 'select', 'socket', 'sys', 'threading']
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
yanglf
帖子: 1
注册时间: 2013-04-05 9:59
系统: Ubuntu

Re: ImportError: cannot import name TCPServer

#7

帖子 yanglf » 2013-04-05 10:01

你的脚本名字不能叫SocketServer.py,不然就会出现这个问题,改个名字吧
回复