【问题标题】:What's python complaining about here?蟒蛇在这里抱怨什么?
【发布时间】:2011-01-14 23:22:53
【问题描述】:

我正在尝试运行 Adob​​e 的示例 python 策略服务器脚本,链接到此处: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:

我对python一无所知,所以这可能是非常简单明了的东西。

【问题讨论】:

    标签: python flash sockets policyfiles


    【解决方案1】:

    with 仅在 2.6+ 中可用,或在 2.5+ 中与 from __future__ import with_statement 可用。

    【讨论】:

      【解决方案2】:

      with 语句是 Python 2.5 中的新语句。也许您使用的是旧版本?

      【讨论】:

      • 正如 Ignacio 指出的那样,如果您通过 from __future__ import with_statement 明确要求,它仅在 2.5 中可用。
      猜你喜欢
      • 1970-01-01
      • 2016-04-22
      • 1970-01-01
      • 2012-01-29
      • 1970-01-01
      • 1970-01-01
      • 2022-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多