使用AWS向Python中的Pusher应用程序发送推送通知。当我将Pusher及其所有依赖项安装到一个目录并压缩到Lambda时,我运行了一个简单的测试并得到了这个错误。
No module named ndg.httpsclient.ssl_peer_verification这是我要运行的代码。
from pusher import Pusher
pusher = Pusher(app_id=u'id', key=u'key', secret=u'secret')
def createPitchZip(context, event):
pusher.trigger('testchannel', 'testevent', {u'some': u'data'})我看过几篇关于这方面的文章,但是单独安装依赖项似乎没有帮助。
谢谢!
编辑
这是堆栈跟踪
No module named ndg.httpsclient.ssl_peer_verification: ImportError
Traceback (most recent call last):
File "/var/task/lambda.py", line 5, in createPitchZip
pusher = Pusher(app_id='***', key='***', secret='***')
File "/var/task/pusher/pusher.py", line 42, in __init__
from pusher.requests import RequestsBackend
File "/var/task/pusher/requests.py", line 12, in <module>
import urllib3.contrib.pyopenssl
File "/var/task/urllib3/contrib/pyopenssl.py", line 49, in <module>
from ndg.httpsclient.ssl_peer_verification import SUBJ_ALT_NAME_SUPPORT
ImportError: No module named ndg.httpsclient.ssl_peer_verification发布于 2016-04-05 18:12:11
向__init__.py目录中添加一个空的ndg文件解决了这个问题。
发布于 2016-03-22 20:29:57
我建议您使用virtualenv来跟踪依赖项。
下面是您可能需要执行的psedo步骤:
1. virtualenv env
2. env/bin/pip install <your packages>
3. cd env/lib/python2.7/site-packages; zip -r mylambda.zip *
4. also zip your lambda handler 如果您正确安装了所有东西,那么zip文件mylambda.zip将包含您所需的一切。
发布于 2016-04-01 03:28:13
这听起来可能很傻,但不要给你的局部变量推手起名字。lambda函数中变量的绑定在执行过程中发生得很晚,并且在您可能并不期望的范围内进行。
我并不是说这是完整的答案,而是执行一个import pusher并更改为myPusher = pusher.Pusher...,以查看错误消息是否更改。如果没有,那么问题就在别处。
https://stackoverflow.com/questions/36159283
复制相似问题