在Google AppEngine开发中打开APNS套接字时权限被拒绝错误

2 投票
2 回答
1539 浏览
提问于 2025-04-18 02:52

我正在尝试让我的应用引擎服务器发送APNS通知,为此我使用了从一个项目中得到的模板代码(这个项目说是可以工作的,所以应该没问题): https://github.com/GarettRogers/appengine-apns-gcm

目前,我想在本地开发环境中让这个功能正常工作。

当我实际尝试打开套接字时,出现了下面的错误信息。

我猜可能是应用引擎需要sudo权限才能这样做(我在用mac)。如果是这样的话,有人知道我怎么才能让应用引擎以sudo权限运行吗?

如果不是的话,有人能告诉我问题出在哪里,以及怎么解决吗?

谢谢。

File "/Users/xxx/Downloads/XXX/ssl.py", line 392, in wrap_socket
ciphers=ciphers) 
File "/Users/xxx/Downloads/XXX/ssl.py", line 114, in __init__
if sock.getsockopt(SOL_SOCKET, SO_TYPE) != SOCK_STREAM:
File "/Users/xxx/Desktop/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/dist27/socket.py", line 222, in meth
return getattr(self._sock,name)(*args)
INFO     2014-04-15 19:42:02,488 module.py:627] default: "POST /content/create_action HTTP/1.1" 500 228
File "/Users/xxx/Desktop/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/remote_socket/_remote_socket.py", line 1112, in getsockopt
raise _SystemExceptionFromAppError(e)
error: [Errno 13] Permission denied

2 个回答

1

我通过以下方式解决了这个问题:

pip install requests-toolbelt -t lib

然后添加:

from requests_toolbelt.adapters import appengine
appengine.monkeypatch()

来源:Python的Requests库可以在Google App Engine上使用吗?

1

按照这个方法操作:“ImportError: No module named _ssl”在使用Google App Engine的dev_appserver.py时出现

这个问题和答案已经解释得很清楚了,我就不详细说了。这是一个长期存在的SDK缺陷,这个手动的方法可以修复它,但每次更新SDK的时候都需要重新应用这个方法。

撰写回答