2010-02-09 5 views
0

내가, 어도비의 샘플 파이썬 정책 서버 스크립트를 실행하기 위해 노력하고있어 여기에 링크 : http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html여기서 불평하는 파이썬은 무엇입니까?

나는 다음과 같은 오류 받고 있어요 : 맥락에서

# python flashpolicyd.py --file=policy.xml 

File "flashpolicyd.py", line 40 
    with file(path, 'rb') as f: 
     ^
SyntaxError: invalid syntax 

:

class policy_server(object): 
def __init__(self, port, path): 
    self.port = port 
    self.path = path 
    self.policy = self.read_policy(path) 
    self.log('Listening on port %d\n' % port) 
    try: 
     self.sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) 
    except AttributeError: 
     # AttributeError catches Python built without IPv6 
     self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    except socket.error: 
     # socket.error catches OS with IPv6 disabled 
     self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 
    self.sock.bind(('', port)) 
    self.sock.listen(5) 
def read_policy(self, path): 
    with file(path, 'rb') as f: 

I을 파이썬에 대해서는 아무 것도 모른다. 그래서 이것은 매우 간단하고 명백한 무언가 일 수있다.

답변

6

with은 2.6 이상 또는 from __future__ import with_statement 인 2.5 이상에서만 사용 가능합니다.

1

with 문은 Python 2.5에서 새로 추가되었습니다. 아마 이전 버전을 사용하고 있습니까?

+0

이그나시오 (Ignacio)가 지적했듯이, 특별히'from __future__ import with_statement'를 사용하여 요청하면 2.5에서만 사용 가능합니다. –