我在使用psp包Pusher的AWS Lambda制作和使用python部署包时遇到了麻烦。这是我得到的错误。
No module named ndg.httpsclient.ssl_peer_verification: ImportError
Traceback (most recent call last):
File "/var/task/Lambda.py", line 3, in pusherTest
pusher = Pusher(app_id=u'154504', key=u'121300e92c61a1fe43bc', secret=u'bfff467a2b6551f19226')
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
以下是为想要尝试的人重新创建问题的步骤。我甚至在免费沙盒中加入了一个虚拟Pusher应用程序,以防您从未使用它。
使用virtualenv
vagrant @ homestead:〜/ Code / Lamdba $ virtualenv env / home / vagrant / Code / Lamdba / env / bin / python中的新python可执行文件 安装setuptools,pip,wheel ......完成。
激活虚拟环境以安装软件包。
vagrant @ homestead:〜/ Code / Lamdba $ source env / bin / activate (env)vagrant @ homestead:〜/ Code / Lamdba $
安装推送包
pip install pusher
将env/lib/python2.7/site-packages
压缩到一个带有py脚本的zip文件中,其中的代码如下所示
from pusher import Pusher
def pusherTest(context, event):
pusher = Pusher(app_id=u'154504', key=u'121300e92c61a1fe43bc', secret=u'bfff467a2b6551f19226')
pusher.trigger('testchannel', 'testevent', {u'some': u'data'})
上传到Lambda并测试功能。
请有人帮忙。
答案 0 :(得分:1)
您的应用程序无法导入ndg.httpsclient.ssl_peer_verification
模块,因此您必须确保:
ndg-httpsclient
软件包已安装在虚拟环境中。这是推送包的依赖,所以我猜它确实安装了,但用pip freeze
确认。env/lib/python2.7/site-packages/
的内容,而不是目录。 AWS期望ndg
包位于Lambda应用程序的根目录中。