2013-05-18 41 views
1

我有一个问题,每当我尝试运行的树莓PI这个python脚本:尝试后Python的缩进错误:

import socket 
import sys 

# Create a TCP/IP socket 
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 

# Bind the socket to the port 
server_address = ('localhost', 10000) 
print >>sys.stderr, 'starting up on %s port %s' % server_address 
sock.bind(server_address) 

# Listen for incoming connections 
sock.listen(1) 

while True: 
    # Wait for a connection 
    print >>sys.stderr, 'waiting for a connection' 
    connection, client_address = sock.accept() 

    try: 
     print >>sys.stderr, 'connection from', client_address 

     # Receive the data in small chunks and retransmit it 
     while True: 
      data = connection.recv(16) 
      print >>sys.stderr, 'received "%s"' % data 
      if data: 
       print >>sys.stderr, 'sending data back to the client' 
       connection.sendall(data) 
      else: 
       print >>sys.stderr, 'no more data from', client_address 
       break 

    finally: 
     # Clean up the connection 
     connection.close() 

我得到这个错误:

File "server.py", line 20 
    try: 
    ^
IndentationError: unexpected indent 

你能告诉我这里有什么问题?该脚本应该创建一个简单的TCP/IP服务器,我没有这样的客户端问题,所以我真的不明白我的错误在哪里/ ...

+0

你尝试在'try'之前删除空行吗? – Elazar

+0

(顺便说一句,缩进问题不是“运行时错误”) – Elazar

回答

3

其中一个不幸的副作用Python使用空格来表示块的做法是,有时候你会得到在整个源代码中混合了制表符和空格的脚本。

由于此脚本非常小,因此您可以尝试删除每行代码前面的空白,然后正确地重新进行填充。

+0

要添加到此,您可以在Python的IDLE中加载代码,选择所有代码,然后点击Format-> Untabify Region。完成之后,尝试保存您的代码,然后再次运行它。 –